GNU/Linux >> Linux の 問題 >  >> Linux

受け入れキューの長さを監視するにはどうすればよいですか?

キューがオーバーフローしているかどうかを確認するには、netstat または nstat を使用してください

[centos ~]$ nstat -az | grep -i listen
TcpExtListenOverflows           3518352            0.0
TcpExtListenDrops               3518388            0.0
TcpExtTCPFastOpenListenOverflow 0  0.0

[centos ~]$ netstat -s | grep -i LISTEN
    3518352 times the listen queue of a socket overflowed
    3518388 SYNs to LISTEN sockets dropped

参考:https://perfchron.com/2015/12/26/investigating-linux-network-issues-with-netstat-and-nstat/

キューのサイズを監視するには、ss コマンドを使用して SYN-RECV ソケットを探します。

$ ss -n state syn-recv sport = :80 | wc -l
119

参考:https://blog.cloudflare.com/syn-packet-handling-in-the-wild/


Sysdig は、各 accept の終わりにこの情報の一部を提供します syscall、queuelen として 口論。また、キューの長さを queuemax として示します .

7598971 21:05:30.322229280 1 gunicorn (6451) < accept fd=13(<4t>127.0.0.1:45882->127.0.0.1:8003) tuple=127.0.0.1:45882->127.0.0.1:8003 queuepct=0 queuelen=0 queuemax=10

私の知る限り、キューがいつ、何回オーバーフローしたかを正確に知るメカニズムはありません。これを collectd までの定期的な監視と統合するのは面倒です。


Linux
  1. 使用している Fedora のバージョンを確認するにはどうすればよいですか?

  2. Linux のシリアル ポートでデータを監視するにはどうすればよいですか?

  3. インストールされている glibc ライブラリのバージョンを確認するにはどうすればよいですか?

  1. Pythonのmatplotlibで「バックエンド」を設定するにはどうすればよいですか?

  2. wgetで最新のAnacondaをインストールするにはどうすればよいですか

  3. 実行中のプロセスの絶対パスを知るにはどうすればよいですか?

  1. Emacsでツールバーを永続的に非表示にするにはどうすればよいですか?

  2. シリアルポートのトラフィックを監視するにはどうすればよいですか?

  3. ディスク io を監視するにはどうすればよいですか?