
No Linux 2.6.32, se você ler (por exemplo, cat) /proc/net/tcp, em um sistema muito carregado (por exemplo, um servidor web), descobrirá que a leitura de 100 mil entradas leva mais de 30 segundos. Isso é muito tempo.
O que está acontecendo nos bastidores? Há bloqueio acontecendo?
Muitas pessoas mencionam a velocidade do comando ‘ss’. O que o comando 'ss' está fazendo que 'cat /proc/net/tcp' ou 'netstat' não está fazendo, o que o torna muito mais rápido?
Responder1
ss
usa a AF_NETLINK
camada de soquete para se comunicar com o kernel. Este é um protocolo de nível inferior, mas permite que os dados sejam transferidos muito rapidamente e em grandes blocos. Uma rápida olhada strace
no CentOS 7 mostra que ele define a janela de transferência para 1 MB.