Was ich persönlich gut repariere
Die Steckdose ist ebenfalls im FD enthalten, wird jedoch übersehen. Diese Art von Fehler tritt fast zuerst auf. Nginx Zu viele offene Dateien Fehler etc. Überprüfen Sie dies mit "ulimit -n", aber achten Sie darauf, dass es von dem Benutzer ausgeführt wird, der auf den Fehler gestoßen ist. Bei root kann es anders sein.
[anyuser]$ ulimit -n
1024
In diesem Fall können nur 1024 FDs verwendet werden.
Ändern Sie die Datei "limits.conf". Beachten Sie, dass je nach Fall häufig nur root auf FD festgelegt ist. Wenn nichts festgelegt ist, ist der Standardwert 1024. Ändern Sie sowohl das weiche als auch das harte Limit. Der Wert wird entsprechend bestimmt. Das Folgende ist, wenn Sie die FD eines beliebigen Benutzers ändern.
/etc/security/limits.conf
* soft core unlimited
* hard core unlimited
root soft nofile 65536
root hard nofile 65536
anyuser soft nofile 65536 ← Hier hinzufügen
anyuser hard nofile 65536 ← Hier hinzufügen
Selbst wenn es in /etc/security/limits.conf beschrieben ist, wird es möglicherweise nicht wiedergegeben.
SSH an den Server, überprüfen Sie die Prozess-ID des Prozesses und überprüfen Sie mit cat / proc /
Wenn der Durchsatz nicht ausgegeben wird, obwohl es sich nicht um einen Ressourcenengpass handelt, ist möglicherweise jeder Port erschöpft.
In den meisten Fällen kann beim Überprüfen des Servers mit netstat eine große Menge von TIME_WAIT auftreten und jeder Port kann belegt sein.
Es ist ziemlich häufig. https://qiita.com/kuni-nakaji/items/c07004c7d9e5bb683bc2 Dies kann mit dem folgenden Befehl bestätigt werden.
[root@]# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0: LISTEN 1/systemd
tcp 0 0 127.0.0.1:25 0.0.0.0: LISTEN 1211/master
tcp 0 0 0.0.0.0:12127 0.0.0.0: LISTEN 8689/sshd
tcp 0 0 10.140.180.223:12127 10.140.50.217:61738 ESTABLISHED 14604/sshd: appladm
tcp6 0 0 :::40042 ::: LISTEN 12232/java
tcp6 0 0 :::111 ::: LISTEN 1/systemd
tcp6 0 0 :::8080 ::: LISTEN 12232/java
tcp6 0 0 :::34710 ::: LISTEN 12232/java
tcp6 0 0 :::12120 ::: LISTEN 12232/java
tcp6 0 0 ::1:25 ::: LISTEN 1211/master
tcp6 0 0 :::12127 ::: LISTEN 8689/sshd
tcp6 0 0 10.140.180.223:42881 10.140.197.150:3306 ESTABLISHED 12232/java
Ändern Sie den folgenden ip_local_port_range und ändern Sie tcp_tw_reuse auf 1. (Fügen Sie hinzu, wenn für tcp_tw_reuse kein Eintrag vorhanden ist.) Es wird nicht empfohlen, andere Parameter zu ändern.
/etc/sysctl.conf
net.ipv4.ip_local_port_range = 30000 65500
net.ipv4.tcp_tw_reuse = 0
Reflektiere mit sysctl -p
wenn du fertig bist.
Recommended Posts