(TCPを使用して)リアルタイムデータサーバーに接続するソフトウェアに取り組んでいますが、いくつかの接続が切断されています。私の推測では、クライアントはサーバーからのデータを十分な速度で読み取っていません。したがって、TCPソケットを監視したいと思います。このために、私は「ss」ツールを見つけました。
このツールを使用すると、すべてのソケットの状態を確認できます。コマンドの出力の例を次に示します 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
私の質問は次のとおりです。記憶部とはどういう意味ですか?私は、データがカーネル構造(から来ていることがわかったツールのソースコードを見てみるとsock
中sock.h
)。より正確には、フィールドから来ます:
r = sk->sk_rmem_alloc
w = sk->sk_wmem_queued;
f = sk->sk_forward_alloc;
t = sk->sk_wmem_alloc;
誰かがその意味を知っていますか?私の推測は次のとおりです。
rmem_alloc
:インバウンドバッファのサイズwmem_alloc
:アウトバウンドバッファのサイズsk_forward_alloc
:???sk->sk_wmem_queued
:???
バッファサイズは次のとおりです。
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