Ce que je corrige personnellement bien
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.
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ê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.
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
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é.