2013-12-12 17 views
17

Stiamo eseguendo un sito Web con ROR su CentOS 6 con 2 server Web e 1 server di database. Alcune volte mostra il messaggio "Il sito Web è sotto carico" ... Può alcuni suggerimenti aiutarti a cosa controllare qui.Il sito Web è sotto carico pesante + ROR

Utilizziamo Passenger 4.0.21 con Ruby 1.8.7 e Apache 2.2.15. Il server Web è in esecuzione con le impostazioni predefinite.

seguito alcune uscita del passeggero-status:

# passeggeri stato

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 

risposta

19

Hai troppe richieste in coda. Dalla versione 4.0.15 c'è un limite che è 100 di default. Ecco un breve estratto da http://blog.phusion.nl/2013/09/06/phusion-passenger-4-0-16-released/ che dice:

Phusion passeggeri ora mostra un messaggio di errore per i clienti se troppe le richieste sono in coda, invece di lasciarli aspettare. Questo molto migliora la qualità del servizio. Per impostazione predefinita, "troppi" è 100. È possibile personalizzare con PassengerMaxRequestQueueSize (Apache) o passenger_max_request_queue_size (Nginx).

Date un'occhiata al manuale d'uso di questo: http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerMaxRequestQueueSize

Si potrebbe provare ad aumentare o impostandolo 0 per disattivarlo.

EDIT

Si dovrebbe anche controllare i log per vedere se ci sono richieste che tengono troppo a lungo. Forse hai alcuni processi nel tuo codice che impiegano troppo tempo. Preferisco usare NewRelic per monitorare queste cose.

+3

Anche io sto vedendo questo. Aumentare il passeggero_max_request_queue_size ha senso, tuttavia nessuno dei processi sta effettivamente facendo nulla. Sono tutti allo 0% della CPU. La coda sembra bloccata. – stellard

+3

stesso problema la coda è bloccata. ho controllato i file di registro senza elaborazione. Quindi ho bisogno di riavviare il server nginx. hai avuto qualche soluzione? – surendar

+0

@surendar Spiacente, ho perso il tuo commento. Non conosco una soluzione diversa dall'aumento di "passenger_max_request_queue_size' – cantonic

Problemi correlati