GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu sledovat délku fronty přijetí?

Chcete-li zkontrolovat, zda je vaše fronta přeplněná, použijte buď netstat nebo 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

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

Chcete-li sledovat velikost fronty, použijte příkaz ss a vyhledejte zásuvky SYN-RECV.

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

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


Sysdig poskytne některé z těchto informací na konci každého accept syscall jako queuelen argument. Zobrazuje také délku fronty jako 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

Pokud je mi známo, neposkytuje žádný mechanismus, který by přesně věděl, kdy nebo kolikrát fronta přetekla. A bylo by těžkopádné integrovat to s periodickým monitorováním pomocí collectd nebo podobně.


Linux
  1. Jak mohu najít verzi Fedory, kterou používám?

  2. Jak mohu sledovat data na sériovém portu v Linuxu?

  3. Jak si mohu vybavit argument předchozího příkazu bash?

  1. Jak mohu získat stav klávesnice v Linuxu?

  2. Jak mohu v handleru SIGILL přeskočit problematickou instrukci?

  3. Jak mohu nainstalovat nejnovější Anacondu s wget

  1. Jak mohu znát absolutní cestu běžícího procesu?

  2. Jak mohu upravit $PATH na linuxu?

  3. Jak mohu najít nejstarší soubor ve stromu adresářů