J'essayais d'évaluer différentes solutions de serveur Rails. Le premier sur ma liste était un système passager nginx +. Je tournais une instance EC2 avec 8 Go de RAM et 2 processeurs, installé nginx et le passager, et a ajouté à fichier nginx.conf:Optimisation des rails de trafic haute performance
passenger_max_pool_size 30;
passenger_pool_idle_time 0;
rails_framework_spawner_idle_time 0;
rails_app_spawner_idle_time 0;
rails_spawn_method smart;
J'ai ajouté un petit contrôleur « génial » aux rails qui serait juste render :text => (2+2).to_s
Je filée une petite boîte et a couru ce pour le tester:
ab -n 5000 -c 5 'http://server/awesome'
et la CPU alors que cela a été en cours d'exécution sur la boîte regardé à peu près comme ceci:
05:29:12 PM CPU %user %nice %system %iowait %steal %idle
05:29:36 PM all 62.39 0.00 10.79 0.04 21.28 5.50
Et je remarque qu'il faut seulement 7-10 demandes simultanées pour amener le CPU à < 1% inactif, et bien sûr cela commence à faire sérieusement baisser les temps de réponse.
Donc, je me demande, est-ce que beaucoup de CPU charge juste le coût de faire des affaires avec Rails? Peut-il servir seulement une demi-douzaine de demandes super-bon marché simultanément, même avec une pile géante de RAM et quelques cœurs? Y a-t-il de bonnes suggestions pour me servir 15-30 demandes simultanées? Mise à jour: essayé la même chose sur l'un des "super méga lots et beaucoup de processeurs" chose EC2. Holy merde était que beaucoup de puissance du processeur. Le sweet spot semblait être d'environ 2 requêtes simultanées par CPU, a été capable de l'obtenir jusqu'à environ 630 demandes/seconde à 16 demandes simultanées. Je ne sais pas si c'est vraiment rentable sur beaucoup de petites boîtes, cependant.
En outre, est-ce une question Rails pour Stack Overflow ou une question de performance pour super utilisateur? Je suis un peu confus sur ce point. –
Peut-être que ServerFault? – Codebeef
L'optimisation des performances pourrait être une zone grise entre stackoverflow et serverfault je pense – Amala