[LINUX] Paramètres du noyau souvent modifiés

Ce que je corrige personnellement bien

Lorsqu'il n'y a pas assez de descripteurs de fichiers

Socket est également inclus dans le FD, mais il est négligé. Ce type d'erreur se produit presque en premier. Nginx Erreur de fichiers ouverts trop nombreux, etc. Vérifiez avec ʻulimit -n`, mais veillez à l'exécuter par l'utilisateur qui a rencontré l'erreur. Cela peut être différent pour root.

[anyuser]$ ulimit -n
1024

Dans ce cas, seuls 1024 FD peuvent être utilisés.

contre-mesure

Modifiez limits.conf. Notez que, selon le cas, seule la racine est souvent définie sur FD, et si rien n'est défini, la valeur par défaut est 1024. Modifiez à la fois la limite souple et la limite stricte. La valeur est déterminée selon le cas. Ce qui suit est lors du changement de FD d'un utilisateur.

/etc/security/limits.conf


*                soft    core            unlimited
*                hard    core            unlimited
root             soft    nofile          65536
root             hard    nofile          65536
anyuser soft nofile 65536 ← Ajouter ici
anyuser hard nofile 65536 ← Ajouter ici

Méthode de confirmation

Même s'il est décrit dans /etc/security/limits.conf, il peut ne pas être reflété. SSH sur le serveur, vérifiez l'ID de processus du processus et vérifiez avec cat / proc / <process_ID> / limits.

épuisement des ports ou quelque chose du genre

Si le débit ne sort pas même s'il ne s'agit pas d'un goulot d'étranglement de ressources, le port any peut être épuisé.

Dans la plupart des cas, si vous vérifiez le serveur avec netstat, une grande quantité de TIME_WAIT peut se produire et n'importe quel port peut être utilisé.

C'est assez courant. https://qiita.com/kuni-nakaji/items/c07004c7d9e5bb683bc2 Cela peut être confirmé avec la commande suivante.

[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 

contre-mesure

Modifiez l'ip_local_port_range suivante et modifiez tcp_tw_reuse sur 1. (Ajouter s'il n'y a pas d'entrée pour tcp_tw_reuse.) Il n'est pas recommandé de modifier d'autres paramètres.

/etc/sysctl.conf


net.ipv4.ip_local_port_range = 30000 65500
net.ipv4.tcp_tw_reuse = 0

Réfléchissez avec sysctl -p une fois terminé.

Recommended Posts

Paramètres du noyau souvent modifiés
À propos des paramètres du noyau Linux
Comment estimer la densité du noyau
Ajouter / supprimer un noyau à JupyterLab
Modifier le tofu Ubuntu en environnement japonais
Ajouter des paramètres aux commandes personnalisées de Django