2013-12-12 54 views
17

2 web sunucusu ve 1 veritabanı sunucusu ile Centros 6'da ROR ile bir web sitesi işletiyoruz. Bazı zamanlarda "Web sitesi ağır yük altında" mesajını gösteriyor ... Burada neleri kontrol edebileceğiniz konusunda biraz yardımcı olabilir.Web sitesi ağır yük altındadır + ROR

Passenger 4.0.21'i Ruby 1.8.7 ve Apache 2.2.15 ile birlikte kullanıyoruz. Web sunucusu varsayılan ayarlarla çalışıyor.

# yolcu durumu

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 

cevap

19

kaçıncı sırada çok fazla istek var: Aşağıda

yolcu-statüsünün bazı çıkıştır. 4.0.15 sürümünden bu yana varsayılan olarak 100 olan bir sınır vardır. Çok fazla istekleri sıraya konulur eğer

Phusion yolcu yerine artık onları bekleyin vermektense, müşterilerine bir hata mesajı görüntüler: Burada diyor http://blog.phusion.nl/2013/09/06/phusion-passenger-4-0-16-released/ kısa alıntıdır. Bu kadar , hizmet kalitesini artırır. Varsayılan olarak, "çok fazla" 100'dür. bunu PassengerMaxRequestQueueSize (Apache) veya passenger_max_request_queue_size (Nginx) ile özelleştirebilirsiniz. http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerMaxRequestQueueSize

Bunu artırarak veya devre dışı bırakmak için 0 ayarlayarak deneyebilirsiniz:

bu konuda kullanıcı kılavuzunda göz at.

Ayrıca çok uzun sürer isteğinin olup olmadığını görmek için günlükleri kontrol etmelidir DÜZENLEME

. Belki kodunuzda çok uzun süren bazı işlemler var. Bu şeyleri izlemek için NewRelic kullanmayı tercih ederim.

+3

Bunu da görüyorum. Passenger_max_request_queue_size öğesinin artırılması anlamlıdır, ancak işlemlerin hiçbiri aslında hiçbir şey yapmaz. Hepsi% 0 CPU'da. Sıra sıkışmış gibi görünüyor. – stellard

+3

aynı sorun, kuyruk sıkışmış. nginx sunucusunu yeniden başlatmam gerekiyor. bir çözüm buldun mu? – surendar

+0

@surendar Üzgünüz, yorumunuzu kaçırdım. 'Passenger_max_request_queue_size' – cantonic