-1
votes

Comment redémarrer le serveur httpd lorsque la mémoire est faible?

J'ai un VPS hébergé sur AWS qui exécute PHP avec httpd . Habituellement, après un certain temps, le serveur (4GB RAM) est surchargé et prend pour toujours pour répondre aux demandes, mais ne donne aucune erreur. Redémarrer httpd corrige cela, mais puisqu'il ne donne aucune erreur, pour toujours ne peut pas redémarrer automatiquement. Comment puis-je écrire sur un script pour redémarrer httpd sudo service httpd redémarrez chaque fois que la mémoire du serveur tombe en dessous d'un numéro particulier? Merci.


7 commentaires

Unix.stackexchange.com/a/434467/175321


4 Go de RAM n'est pas si petit. Avez-vous surveillé ce qui mave la mémoire? Considérez de passer d'Apache à un autre serveur HTTP (S). Aussi régler l'échange pourrait aider à garder le système sensible.


S'il y a un SSD, placez l'espace de swap là-bas.


Ce serveur est une passerelle entre UI et un autre serveur 3RD-Party, le serveur tiers est généralement lent et je ne peux pas le contrôler, donc je suppose que la mémoire a été mangée lors de l'attente des réponses du serveur 3ème.


Essayez top -o res à la ligne de commande.


Envisagez également de réduire la connexion ouverte en démarrant un processus d'arrière-plan peignant NOHUP à un appel système pour récupérer les données de 3RD-Parti. Laissez le client demander périodiquement via Ajax si les données sont prêtes. EN.Wikipedia.org/wiki/NoHUP Un redémarrage du serveur est une mauvaise opération de contournement.


Ses données d'affichage ne reçoivent pas de données afin de redémarrer le serveur avec les demandes ayant une défaillance enregistrée et à nouveau demandant plus tard, c'est bien pour moi


3 Réponses :


-1
votes

Vous pouvez écrire un cron qui exécute tous les 5s ou tout intervalle que vous pensez et que le service httpd redémarre.


2 commentaires

Notez que ce serveur exécute des tâches intensives et ne nécessite pas de réponse immédiate, c'est bien en attente de 20 secondes pour la réponse, si je le fais et que le serveur servant une demande, les demandes échoueraient, n'est-ce pas? Si le serveur prend pour toujours réagir, j'ai un système de journal pour enregistrer chaque demande et demande à nouveau plus tard, mais uniquement pour les circonstances lorsque le serveur échoue. Le redémarrage toutes les 5 secondes inonderait ce système de journal. Cependant, un travail cron pour vérifier la mémoire et le redémarrer si nécessaire est une bonne idée, merci.


C'est un commentaire, pas une réponse. Eh bien, comment écrit-il le cronjob? Cela transformerait-le en une réponse.



1
votes

Je suppose de votre question que vous utilisez le système d'exploitation compatible Ubuntu / Debian. La commande gratuit sur Linux vous donne l'utilisation de la mémoire de votre système. Vous pouvez donc écrire un script Bash à l'aide de gratuit et GAWK (pour filtrer les informations nécessaires à partir de la sortie) pour émettre la commande de redémarrage si quelles que soient les conditions de l'utilisation de la mémoire. Enfin créer un cron pour exécuter périodiquement votre script


1 commentaires

On devrait savoir interpréter gratuit . Stackoverflow.com/questions/3784974/...



2
votes

Ceci est quelque peu une question sans réelle bonne réponse, car tout d'abord, vous devez savoir exactement ce qui mesure tout votre bélier.

J'ai plusieurs VPS, certaines avec aussi peu que 2 Go de RAM, en cours d'exécution CWP.PRO, des pare-feu, des serveurs DNS et de messagerie et HTTPD ne se bloque toujours jamais après de nombreuses demandes.

Veuillez envisager de résoudre ce problème.

Pour répondre à votre question si vous avez monit la configuration, cela peut faire ce que vous voulez. Il surveille vos services et les arrête après avoir pris trop de ressources, les redémarre lorsqu'il n'est pas en cours d'exécution ou qu'il y a un problème, etc.

Voici un extrait pour montrer ce que quelqu'un l'utilise dit:

Lorsque vous ne pouvez pas surveiller votre serveur pour la disponibilité du service, il est préférable de prendre de l'aide de l'utilitaire de surveillance automatisé et de redémarrer. Les 4 derniers jours, j'étais absent de mon serveur alors que je profitais de mes vacances. Pendant ce temps, en raison de la charge de mon service Web Lightpd est mort, mais il a été redémarré automatiquement dans les 2 minutes. J'ai eu une utilité configurée pour la surveillance des services sur un système Linux appelé Monit. Il offre toutes les fonctionnalités que vous avez nécessaires pour la surveillance du système et effectuez la récupération des erreurs pour le système Unix comme unix.

Pour conclure tout ce que j'ai dit ici est le lien pour installer et utiliser Monit: Monit 3ème partie

et le site officiel: Site officiel


0 commentaires