L'application a été pressée, puis les servers ont été détenus. J'ai ajouté 8 servers de plus, toujours trop lent

Notre nouvelle application a reçu beaucoup de presse aujourd'hui, et reçoit des milliers de nouveaux users chaque heure … mais il est devenu si lent qu'il est inutilisable.

Nous utilisons Rails 3 remis à la dernière, ubuntu, Unicorn, nginx, postgresql, memcache.

J'ai déjà ajouté 8 nouveaux servers et il a marqué à peine une différence. J'ai également essayé de définir la valeur de keepalive de nginx à 1. En plus d'append plus de servers, je ne suis pas en mesure de faire pour améliorer les time de réponse. J'ai 10 travailleurs de licorne en cours d'exécution par server. La question semble être que la queue des requests est trop longue sur chaque server. Je pourrais me tromper à ce sujet, je ne suis pas totalement sûr de ce qui le cause, je sais juste que cela fonctionnait parfaitement hier avec 2% de la charge actuelle.

Toute aide est grandement appréciée

2 Solutions collect form web for “L'application a été pressée, puis les servers ont été détenus. J'ai ajouté 8 servers de plus, toujours trop lent”

Lorsqu'une application est claquée, il n'y a généralement qu'une chose à faire à court terme. Jette de l'argent au problème. Aussi connu comme continuer à append des servers.

À moyen terme, régler et régler les parameters.

À long terme, réparez tout ce code crappy qui est là qui n'a pas besoin d'être réparé auparavant. Il est time de rembourser cette dette technique.

Si votre application effectue déjà des en-têtes de caching correctement (c.-à-d., Les pages dynamics qui sont fréquemment visitées et rarement mises à jour reçoivent des en-têtes de caching), le vernis collant devant le server Web peut faire des merveilles.

(Sur l'un de mes sites, nous avons obtenu une amélioration de la performance de ~ 10x, car 90% des visiteurs du site sont en lecture seule, et ils ne se soucient pas d'avoir vu des versions dynamics de pages dynamics de 10 minutes)

  • Forward IP réelle via Haproxy => Nginx => Unicorn
  • L'opération n'est pas autorisée lors du démarrage de la Licorne
  • Unicorn Shared Socket
  • Comment charger des variables d'environnement avec Unicorn
  • Demande de timeout d'attente avec nginx, licorne et rails
  • Gitlab redirect loop lorsque vous requestz archive.zip
  • Ecriture d'un file de configuration upstart pour Unicorn
  • NGINX Unicorn 504 Gateway Time-out
  • Blue / Green Rails de test avec nginx + Unicorn
  • Besoin d'augmenter le débit nginx vers un socket unix amont - linux kernel tuning?
  • Nginx + unicorn + spdy + test de performance
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.