2013-12-12 2 views
17

2 개의 웹 서버와 1 개의 데이터베이스 서버로 CentOS 6에서 ROR로 웹 사이트를 운영하고 있습니다. 언젠가 그것은 "웹 사이트가 무거운 짐을지고있다"라는 메시지를 보여줍니다 ... 어떤 plese가 당신에게 여기서 무엇을 확인하도록 도울 수 있습니까?웹 사이트의 부하가 + ROR

우리는 승객 4.0.21을 Ruby 1.8.7 및 Apache 2.2.15와 함께 사용하고 있습니다. 웹 서버가 기본 설정으로 실행 중입니다.

# 승객-상태

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 

답변

19

당신은 큐에 너무 많은 요청이 : 아래

은 여객 상태의 일부 출력됩니다. 버전 4.0.15에는 기본적으로 100이라는 제한이 있습니다. 너무 많은 요청이 대기하고있는 경우

Phusion 여객 지금 그들을 대신 대기시키는의 클라이언트에 오류 메시지가 표시됩니다 : 여기 말한다 http://blog.phusion.nl/2013/09/06/phusion-passenger-4-0-16-released/에서 짧은 발췌 한 것입니다. 이 정도면 은 서비스 품질을 향상시킵니다. 기본적으로 "too many"는 100입니다. 은 PassengerMaxRequestQueueSize (Apache) 또는 passenger_max_request_queue_size (Nginx)으로 사용자 정의 할 수 있습니다. http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerMaxRequestQueueSize

당신은 그것을 증가 또는 비활성화하기 위해 0로 설정을 시도 할 수 :

이에 대한 사용자 가이드를 보라.

또한 너무 오래 걸릴 요청이 있는지 여부를 확인하기 위해 로그를 확인해야 EDIT

. 어쩌면 코드에 너무 오래 걸리는 프로세스가있을 수 있습니다. 나는 NewRelic을 사용하여 모니터링하는 것을 선호합니다.

+3

나는 이것도보고 있습니다. 그러나 passenger_max_request_queue_size를 늘리면 실제로 아무 것도하지 않는 프로세스가 없습니다. 그들은 모두 0 % CPU입니다. 대기열이 멈춘 것처럼 보입니다. – stellard

+3

대기열이 멈추었습니다. 내가 로그 파일을 확인 아무 processing.then nginx 서버를 다시 시작해야합니다. 너 어떤 해결책있어? – surendar

+0

@surendar 죄송합니다, 귀하의 코멘트를 놓쳤습니다. 'passenger_max_request_queue_size'를 늘리는 것 이외의 해결책을 모르겠습니다. – cantonic