[LINUX] Kernel-Parameter, die häufig geändert werden

Was ich persönlich gut repariere

Wenn nicht genügend Dateideskriptoren vorhanden sind

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.

Gegenmaßnahme

Ä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

Bestätigungsmethode

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 / / Limits.

Portverarmung oder so

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 

Gegenmaßnahme

Ä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

Kernel-Parameter, die häufig geändert werden
Informationen zu Linux-Kernelparametern
So schätzen Sie die Kerneldichte
Hinzufügen / Entfernen des Kernels zu JupyterLab
Ändern Sie den Ubuntu-Tofu in die japanische Umgebung
Fügen Sie den benutzerdefinierten Befehlen von Django Parameter hinzu