L'impact des redémarrages progressifs et de l'expérience utilisateur d'Apache

10

Est-il sûr d'effectuer un gracefulredémarrage d'Apache sur un serveur de production? Quels seront les effets d'un redémarrage gracieux et quel serait l'impact (le cas échéant)? Y aura-t-il des impacts préjudiciables (par exemple des temps d'arrêt, même si c'est pour une courte période)?

J'ai pris en compte les ressources suivantes, mais on ne sait toujours pas quels seront les impacts sur les utilisateurs:

stellarchariot
la source

Réponses:

9

Lorsque vous effectuez un redémarrage régulier, les connexions existantes doivent s'exécuter jusqu'à leur achèvement normal, moment auquel leurs employés se termineront. De nouveaux travailleurs devraient déjà être démarrés pour gérer de nouvelles connexions.

Vous ne devriez pas remarquer d'échecs de connexion ou de chargements de page lents, mais dans la pratique, vous pouvez voir brièvement de nouvelles connexions en file d'attente pendant que la configuration est rechargée par le thread principal (la mienne prend moins d'une demi-seconde)

Si vous redémarrez pour récupérer une nouvelle configuration, il existe un risque d'erreur de configuration qui pourrait empêcher le redémarrage correct du serveur.

Si le serveur est dans un état anormal, il peut ne pas redémarrer normalement (c'est peut-être la raison pour laquelle vous envisagez un redémarrage normal)

Rusé
la source
1

Si Apache sert des fichiers statiques et n'agit pas comme le devant de quelque chose comme , c'est assez fluide. La plupart des utilisateurs ne le remarqueront même pas, et ceux qui le considéreront comme un pépin normal. Apache ne servira pas les nouvelles requêtes tant que les anciennes ne seront pas servies, vous attendez donc qu'elles soient toutes terminées. Si quelqu'un télécharge un fichier de 500 Mo à 68 Ko / s, il se peut que vous attendiez LONGTEMPS, pendant lequel aucune autre portion ne se produit.

Si Apache fait face à un serveur d'applications, la situation peut être très différente. Par expérience, l'expérience utilisateur pour interagir avec ce serveur sera très mauvaise jusqu'à ce que le serveur d'applications soit en place, chargé et que les caches soient réchauffés.

sysadmin1138
la source
5
De plus, il est TRÈS important de faire un /etc/init.d/httpd configtestavant de procéder à tout redémarrage d'apache sur un serveur de production.
Citylight
En effet - il est très important de lancer un test de configuration. IIRC, je pense qu'avec les versions ultérieures d'Apache pourrait effectuer un configtest implicite avant un redémarrage gracieux, et s'il échoue le configtest, il ne continuera pas avec le redémarrage.
stellarchariot
5
"Apache ne servira pas les nouvelles requêtes tant que les anciennes ne seront pas servies, vous devrez donc attendre qu'elles soient toutes terminées. Si quelqu'un télécharge un fichier de 500 Mo à 68 Ko / s, vous pouvez attendre LONGTEMPS, pendant lequel aucun autre le service arrive. " Ce n'est pas exact. La configuration est rechargée immédiatement et de nouveaux processus enfants sont créés, acceptent les connexions et traitent les demandes pendant que la génération précédente termine ses dernières demandes.
covener
0

Le paramètre gracieux susmentionné indique à httpd de commencer le processus de redémarrage en signalant d'abord à tous ses processus enfants de terminer leurs tâches en cours. Une fois que tous les processus enfants (ceux qui traitent les requêtes http) ont terminé leurs tâches, ils se fermeront; si aucun processus enfant ne traite actuellement les demandes, il se fermera immédiatement.

Tandis que, arrêtez les tentatives de terminer immédiatement tous les processus enfants, ce qui pourrait laisser les utilisateurs finaux suspendus. Ma préférence est gracieuse - un meilleur choix pour votre serveur de classe affaires - car c'est plus convivial que de mettre fin brusquement aux processus enfants qui servent les clients. De nombreux administrateurs et en particulier les programmeurs utilisent stop pour arrêter leur serveur, souvent parce qu'ils ne savent même pas qu'une grâce existe.

Lien: https://www.godaddy.com/garage/tech/config/how-to-restart-apache-without-rebooting-your-centos-linux-server/ Lien

Somdip Dey
la source