Kernel: TCP: Problem mit Zeitwarte-Bucket-Tabellenüberlauf
Ich habe kürzlich Elk zum Sammeln von Systemprotokollen verwendet und festgestellt, dass einige Maschinen viele Kernelfehler haben
Die meisten Meinungen im Internet gehen dahin, den Kernel-Parameter net.ipv4.tcp_max_tw_buckets zu erhöhen. Aber ich habe das Prinzip nicht gesagt
Ich habe darüber nachgedacht, und eigentlich bedeutet tw_buckets Zeit warten, Eimertisch. Der Tisch ist voll.
Warum ist es voll?
<code>netstat -an<span>|more</span></code>
Siehe time_out-Link
Normalerweise ist es Port 80, der vom Webserver verursacht wird, daher ist es naheliegend, an Keepalived zu denken.
Danach habe ich Keepalived deaktiviert und dann den Wert von tcp_max_tw_buckets auf 2w angepasst. Nach meiner Beobachtung gibt es im Grunde keinen solchen Alarm.
Besonders bei einigen Clustern, die Weiterleitungs-Backends erfordern, halte ich es persönlich für das Beste, Keepalive zu deaktivieren, damit weniger Verbindungen aufrechterhalten werden.
Das Obige hat das Problem des Kernels eingeführt: TCP: Time Wait Bucket Table Overflow, einschließlich der relevanten Aspekte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.