(TCP kullanarak) Gerçek Zamanlı veri sunucusuna bağlanan bir yazılım üzerinde çalışıyorum ve bazı bağlantıları bırakarak var. Benim tahminim, istemciler sunucudan gelen verileri yeterince hızlı okumazlar. Bu nedenle TCP soketlerimi izlemek istiyorum. Bunun için "ss" aracını buldum.
Bu araç her soketin durumunu görmenizi sağlar - burada komutun çıktısının örnek bir satırı ss -inm 'src *:50000'
ESTAB 0 0 184.7.60.2:50000 184.92.35.104:1105
mem:(r0,w0,f0,t0) sack rto:204 rtt:1.875/0.75 ato:40
Sorum şu: hafıza kısmı ne anlama geliyor? Aracın kaynak koduna bakarak verilerin bir çekirdek yapısından ( sock
in sock.h
) geldiğini buldum . Daha doğrusu, alanlardan gelir:
r = sk->sk_rmem_alloc
w = sk->sk_wmem_queued;
f = sk->sk_forward_alloc;
t = sk->sk_wmem_alloc;
Birisi ne demek istediğini biliyor mu? Tahminlerim:
rmem_alloc
: gelen arabellek boyutuwmem_alloc
: giden arabellek boyutusk_forward_alloc
: ???sk->sk_wmem_queued
: ???
İşte benim tampon boyutları:
net.ipv4.tcp_rmem = 4096 87380 174760
net.ipv4.tcp_wmem = 4096 16384 131072
net.ipv4.tcp_mem = 786432 1048576 1572864
net.core.rmem_default = 110592
net.core.wmem_default = 110592
net.core.rmem_max = 1048576
net.core.wmem_max = 131071