
Wenn Sie unter Linux 2.6.32 (z. B. cat) /proc/net/tcp auf einem sehr ausgelasteten System (z. B. einem Webserver) lesen, werden Sie feststellen, dass das Lesen von 100.000 Einträgen über 30 Sekunden dauert. Das ist eine lange Zeit.
Was passiert hinter den Kulissen? Werden Sperren vorgenommen?
Viele Leute erwähnen die Geschwindigkeit des „ss“-Befehls. Was macht der „ss“-Befehl, was „cat /proc/net/tcp“ oder „netstat“ nicht machen, und was ihn so viel schneller macht?
Antwort1
ss
verwendet die AF_NETLINK
Socket-Schicht, um mit dem Kernel zu kommunizieren. Dies ist ein Protokoll auf niedrigerer Ebene, ermöglicht aber eine sehr schnelle und in großen Mengen übertragene Datenübertragung. Ein kurzer Blick strace
auf CentOS 7 zeigt, dass das Übertragungsfenster auf 1 MB eingestellt ist.