J'utilise le serveur Web LiteSpeed. Il fonctionne très bien lorsqu'il est utilisé avec le plugin WordPress LiteSpeed Cache. Cependant, je vois parfois que le error.log est rempli avec les messages d'avis "Resume All Listeners".
2019-10-22 14:11:09.999551 [NOTICE] [3490] Resume All Listeners
2019-10-22 14:11:10.493639 [NOTICE] [3490] Resume All Listeners
Voici quelques statistiques des journaux d'erreurs.
# grep -c "Resume All Listeners" error.log.2019_10_22
21086
# grep -c "Resume All Listeners" error.log.2019_10_21
483
# grep -c "Resume All Listeners" error.log.2019_10_22.01
157314
Lors d'une recherche rapide sur Google, j'ai atterri sur la page Wiki de LiteSpeed. L'essentiel de la page est le suivant :
- Cet avis commence à apparaître lorsque la limite "Max Connections" est atteinte.
- Lorsque cela commence à se produire, le serveur ne traitera pas quelques requêtes par intermittence. Ainsi, vous ne serez pas du tout au courant de ce problème à moins que vous n'ayez mis en place des scripts de surveillance.
- Il n'y a aucun moyen de résoudre ce problème, il continuera de croître et progressivement tous vos sites tomberont en panne.
- Le seul moyen de résoudre ce problème est de redémarrer le serveur.
J'ai conservé les paramètres suivants pour mon serveur Web LiteSpeed.
Réglage des paramètres de connexion du serveur Web LiteSpeed
Ce sont des chiffres très élevés et le trafic de mon site Web n'est pas suffisant pour franchir cette limite. Pourtant, parfois, je vois que mon fichier error.log est rempli de messages d'avertissement "Resume All Listeners".
Indicateurs d'erreur de reprise de tous les auditeurs
- Trafic réduit :J'ai utilisé Google Analytics pour suivre le trafic de mon site Web. J'ai vu une baisse d'environ 20 % chaque fois que cette erreur commence à apparaître.
- Services de surveillance de site Web :J'utilise Uptime Robot pour surveiller les temps d'arrêt de mes sites Web. Si vous recevez des messages intermittents de temps d'arrêt pour vos sites Web, mais lorsque vous vérifiez et que tout va bien, cela peut être dû à cela.
- Le site Web ne se charge pas parfois :Si tout va bien et que soudainement votre site Web ne se charge pas et que le problème a disparu lorsque vous actualisez ou après quelques minutes, cela peut être dû à cette erreur.
- Tendre la main aux lecteurs :JournalDev est un site Web populaire et je reçois souvent des messages d'utilisateurs indiquant que mon site Web ne se charge pas. C'est toujours une bonne idée de vérifier rapidement le journal des erreurs du serveur pour voir si cela se produit de manière aléatoire pour certains utilisateurs en raison d'une erreur des auditeurs.
Correction de l'erreur de reprise de tous les écouteurs
Nous savons que la seule solution consiste à redémarrer le serveur. Nous ne pouvons pas vérifier manuellement les serveurs tout le temps. C'est pourquoi j'ai écrit un simple script shell pour vérifier la présence de "Resume All Listeners" dans le fichier error.log et s'il dépasse une certaine valeur seuil, il suffit de redémarrer le serveur.
Puisqu'un nouveau fichier error.log est créé à chaque redémarrage du serveur, nous n'avons pas à nous soucier des messages d'erreur précédents.
Voici le script shell qui fonctionne pour moi.
lsws_restarts_script.sh
#!/bin/bash
result=`/usr/bin/grep -c "Resume All Listeners" /usr/local/lsws/logs/error.log`
date_time=`date`
echo $date_time $result >> /root/scripts/lsws_restarts_script_logs.log
if [ $result -gt 100 ]
then
echo $date_time "Restarting LSWS Server" >> /root/scripts/lsws_restarts_script_restart_logs.log
restart_msg=`/usr/local/lsws/bin/lswsctrl restart`
sleep 5
echo $date_time $restart_msg >> /root/scripts/lsws_restarts_script_restart_logs.log
else
echo "All Seems Good" >> /root/scripts/lsws_restarts_script_logs.log
fi
Je l'ai configuré pour qu'il s'exécute toutes les 2 minutes à l'aide de la commande crontab.
*/2 * * * * /root/scripts/lsws_restarts_script.sh > /dev/null
Remarque :Le script fonctionne bien sur mon serveur Ubuntu. Si vous utilisez un autre système d'exploitation, vous devrez peut-être apporter de légères modifications pour le faire fonctionner.
Conclusion
Maintenant, je ne crains pas que le LiteSpeed ne réponde pas à cause de l'épuisement de la connexion. Le script prendra les mesures nécessaires pour redémarrer le serveur. Si vous trouvez le script utile, partagez-le également avec d'autres.