Das Problem
Das System weist einige Leistungseinbußen auf. Die Überprüfung mit netstat zeigt eine sehr große (und steigende) Anzahl von „Packet Reassembles Failed“ ähnlich wie:
# netstat -s | fgrep reassembles 353357449 packet reassembles failed 353359152 packet reassembles failed 353360314 packet reassembles failed 353361547 packet reassembles failed 353363020 packet reassembles failed 353364064 packet reassembles failed
Die Lösung
Im Allgemeinen kann das erneute Zusammensetzen von IP-Paketen fehlschlagen, wenn:
- Es ist nicht genügend Arbeitsspeicher vorhanden, um die IP-Fragmente wieder zusammenzusetzen.
- Während des Wartens auf die verbleibenden IP-Fragmente tritt eine Zeitüberschreitung auf.
- Die IP-Fragmente werden gelöscht oder beschädigt.
Dieser Beitrag behandelt die Probleme Nr. 1 und Nr. 2.
In Bezug auf Zeitüberschreitungen
Überprüfen Sie die aktuelle ipfrag_time :
# cat /proc/sys/net/ipv4/ipfrag_time 30
Erwägen Sie, dies auf 60 zu erhöhen:
# echo "60" > /proc/sys/net/ipv4/ipfrag_time
Wenn dies erfolgreich ist, kann es dauerhaft gemacht werden, indem der obige echo-Befehl zu /etc/rc.local
hinzugefügt wirdÜber das Gedächtnis
Die Dokumentation sagt:
ipfrag_high_thresh - INTEGER Maximum memory used to reassemble IP fragments. When ipfrag_high_thresh bytes of memory is allocated for this purpose, the fragment handler will toss packets until ipfrag_low_thresh is reached. ipfrag_low_thresh - INTEGER See ipfrag_high_thresh
Überprüfen Sie die aktuellen Werte für ipfrag_high_thresh und ipfrag_low_thresh:
ipfrag_high_thresh 4194304 ipfrag_low_thresh 3145728
Beginnen Sie in diesem Fall damit, ipfrag_high_thresh zu erhöhen, um den aktuellen Wert zu verdoppeln. d.h.:
# echo "8388608" > /proc/sys/net/ipv4/ipfrag_high_thresh
Wenn das Ergebnis zufriedenstellend ist, fügen Sie dies erneut zu /etc/rc.local.
hinzu