Phénomène problématique :
Tomcat (8.5.13) a déployé SuperMap iServer et le nombre d'utilisateurs simultanés est d'environ 100. Après que le système ait fonctionné pendant un certain temps, le service plante. Invite d'exception
Analyse du problème :
1. Après avoir vu les informations d'invite dans le journal, j'ai pensé que cela était dû à une mémoire système insuffisante. Un script de surveillance a donc été ajouté au serveur (comme indiqué ci-dessous) pour enregistrer la mémoire système et la mémoire Tomcat toutes les secondes.
Après une surveillance pendant un certain temps, l'exception est réapparue. Aucune exception de mémoire n'a été trouvée dans le journal
2. Une fois la mémoire exclue, l'idée se tourne vers la question de savoir si le nombre de processus est dépassé en raison d'un trop grand nombre d'utilisateurs simultanés ?
1) Vérifiez les paramètres de limite de ressources de l'utilisateur Linux actuel ulimit -a
2) Parmi les paramètres ci-dessus, celui qui accorde le plus d'attention à est un processus Le nombre maximum de fichiers pouvant être ouverts, c'est-à-dire des fichiers ouverts. Le nombre maximum de processus autorisés à être créés par le système est le paramètre maximum de processus utilisateur. Nous pouvons utiliser ulimit -u 4096 pour modifier la valeur du nombre maximal de processus utilisateur, mais cela ne prendra effet que dans la session du terminal actuel. Après vous être reconnecté, la valeur par défaut du système sera toujours utilisée.
La bonne façon de le modifier est de modifier la valeur dans le fichier /etc/security/limits.d/90-nproc.conf. Voyons d'abord ce que contient ce fichier :
$ cat /etc/security/limits.d/90-nproc.conf # Default limit for number of user's processes to prevent # accidental fork bombs. # See rhbz #432903 for reasoning. * soft nproc 4096
Il suffit de modifier la valeur 4096 dans le fichier ci-dessus.
Après enquête, cela était effectivement dû au fait que le nombre maximum de processus défini par l'utilisateur actuel du serveur était trop petit, ce qui empêchait le serveur de créer des processus et plantait.
Référence :
linux Afficher le processus actuel :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!