Nous exécutons un site Web avec ROR sur CentOS 6 avec 2 serveurs Web et 1 serveur de base de données. Parfois, il affiche le message "Le site Web est sous forte charge" ... Certains peuvent vous aider à vérifier ici.
Nous utilisons Passenger 4.0.21 avec Ruby 1.8.7 et Apache 2.2.15. Le serveur Web fonctionne avec les paramètres par défaut.
Vous trouverez ci-dessous une sortie du statut de passager:
# passager-statut
Version : 4.0.21
Date : Thu Dec 12 02:02:44 -0500 2013
Instance: 20126
----------- General information -----------
Max pool size : 6
Processes : 6
Requests in top-level queue : 0
----------- Application groups -----------
/home/web/html#default:
App root: /home/web/html
Requests in queue: 100
* PID: 20290 Sessions: 1 Processed: 53 Uptime: 24h 3m 5s
CPU: 0% Memory : 634M Last used: 23h 16m 8
* PID: 22657 Sessions: 1 Processed: 37 Uptime: 23h 15m 55s
CPU: 0% Memory : 609M Last used: 22h 44m
* PID: 29147 Sessions: 1 Processed: 146 Uptime: 20h 47m 48s
CPU: 0% Memory : 976M Last used: 18h 20m
* PID: 22216 Sessions: 1 Processed: 26 Uptime: 10h 3m 19s
CPU: 0% Memory : 538M Last used: 9h 44m 4
* PID: 23306 Sessions: 1 Processed: 75 Uptime: 9h 43m 22s
CPU: 0% Memory : 483M Last used: 8h 44m 4
* PID: 25626 Sessions: 1 Processed: 115 Uptime: 8h 46m 42s
CPU: 0% Memory : 540M Last used: 7h 59m 5
Vous avez trop de demandes en file d'attente. Depuis la version 4.0.15, il y a une limite qui est 100 par défaut. Voici un court extrait de http://blog.phusion.nl/2013/09/06/phusion-passenger-4-0-16-released/ qui dit:
Phusion Passenger affiche désormais un message d'erreur aux clients si trop de demandes sont mises en file d'attente, au lieu de les laisser attendre. Cela améliore considérablement la qualité de service. Par défaut, "trop" est 100. Vous pouvez le personnaliser avec
PassengerMaxRequestQueueSize
(Apache) oupassenger_max_request_queue_size
(Nginx).
Jetez un œil au guide de l'utilisateur à ce sujet: http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerMaxRequestQueueSize
Vous pouvez essayer de l'augmenter ou de le définir sur 0
afin de le désactiver.
[~ # ~] modifier [~ # ~]
Vous devriez également vérifier vos journaux pour voir s'il y a des demandes qui prennent trop de temps. Peut-être avez-vous des processus dans votre code qui prennent trop de temps. Je préfère utiliser NewRelic pour surveiller ces choses.