1 votes

Les processus du rack prennent le CPU sous Passager

J'ai un site Spree qui utilise la pile suivante :

  • Nginx 1.0.8
  • Passager 3.0.9
  • Ruby 1.9.2-p290
  • Rack 1.3.6
  • Rails 3.1.4
  • Spree 0.70.5

J'ai récemment effectué une mise à jour de Spree 0.70.3, qui a également entraîné une mise à jour de Deface de 0.7.x à 0.8.0. Depuis lors, les choses sont très instables.

Récemment nous avons vu des processus accaparant le CPU qui se chargeront sur le serveur et feront tout s'arrêter. Ce sont des processus Rack et il semblerait que Passenger les démarre ; ils appartiennent au groupe de travail site-runner utilisateur, un utilisateur non privilégié qui possède le code de l'application. (Passenger exécute automatiquement le code du site en tant qu'utilisateur propriétaire). Si je redémarre Nginx et que je tue les processus qui se sont emballés, cela aide pendant un moment, mais les processus similaires reviennent et embourbent à nouveau les choses.

ETA : Je regarde maintenant passenger-status et passenger-memory-stats qui suggèrent que ce sont les processus de candidature de Passenger. S'il s'enfuit ou s'arrête, il doit y avoir un problème avec mon application.

Quelle est ma meilleure option pour savoir où il est accroché ?

1voto

kashani Points 3862

Les processus Rack sont les serveurs d'application qui exécutent le code de votre site, pas Passenger. Je soupçonne des problèmes avec les récentes mises à jour et tous les dépannages habituels autour de cela. Voici à quoi ressemble une requête sur votre système.

user -> nginx -> passenger -> Rack process -> generates page

Votre système comportera plusieurs processus Rack, car chacun d'entre eux est doté d'un seul fil d'exécution et ne peut traiter qu'une seule demande à la fois. Le travail de Passenger est de proxyer les demandes et de les envoyer aux processus Rack et de démarrer/arrêter/recycler ces processus Rack si nécessaire. En général, le démarrage d'un processus Rack prend de 5 à 45 secondes, selon la complexité de votre application, et vous en aurez donc plusieurs en cours d'exécution, même si vous ne répondez pas aux demandes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X