2013-03-08 1 views
2

G'day 스트레스 테스트의 오류,Nginx의/PHP-FPM kevent()

내가 Nginx에 (1.2.7_1,1)와 PHP-FPM과 FreeBSD의 상자 (9.1-RELEASE)를 실행하는거야 (5.4 .12).

ab -n 10000 -c 500 http://10.128.28.164/index.php 

내가 (그들의 수천) /var/log/httpd-error.log 얻을 주된 오류는 다음과 같습니다 : 아파치 AB를 사용하여 동시 요청을 처리하기에 큰 문제가 발생

2013/03/08 11:11:10 [오류] 99855 # 0 : * 업스트림 클라이언트에 연결하는 동안 connect()가 실패 (54 : 피어에 의한 연결 재설정) 오류가보고 된 44116 kevent() : 10.128.28.179, server : localhost, 요청 : "GET /index.php HTTP/1.0", 업스트림 : "fastcgi : //10.128.28.164 : 9000", 호스트 : "10.128.28.164"

서버 (10.128.28.164)로 이동하면 HTML 및 PHP 페이지에서 잘 작동합니다.

도움이 될 것입니다!

피트.

내 PHP-fpm.conf 파일은 다음과 같다 :

pid = run/php-fpm.pid 
error_log = log/php-fpm.log 
daemonize = yes 
events.mechanism = kqueue 

; Pool 
[www] 

user = www 
group = www 

listen = 10.128.28.164:9000 

pm = dynamic 
pm.max_children = 100 
pm.start_servers = 2 
pm.min_spare_servers = 1 
pm.max_spare_servers = 3 
pm.max_requests = 100 

내 nginx.conf 파일은 다음과 같다 :

worker_processes 4; 

error_log /var/log/httpd-error.log; 

events { 
    worker_connections 1024; 
} 

http { 
    include  mime.types; 
    default_type application/octet-stream; 

    access_log /var/log/httpd-access.log; 

    sendfile  on; 

    keepalive_timeout 65; 

    gzip on; 

    server { 
     listen  10.128.28.164:80; 
     server_name localhost; 

     root /usr/local/www; 

     location ~ \.php$ { 
      fastcgi_pass 10.128.28.164:9000; 
      fastcgi_index index.php; 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
      fastcgi_param PATH_INFO $fastcgi_script_name; 
      include  fastcgi_params; 
     } 

     location/{ 
      index index.html; 
     } 
    } 
} 

답변

1

확인 dmesg 명령을 효과에 대한 커널 메시지, 최대 네트워크 연결 수 또는 열린 파일 또는 일부 다른 리소스가 소진되었습니다 (또는 한도에 도달했습니다).

당신이 인용 한 로그 메시지는 그 이야기의 프록시 부분만을 알려줍니다. 백엔드가 연결을 재설정하는 이유는 백엔드의 로그에서 확인해야합니다 ... 예를 들어, php-fpm은 파일 설명자의 한도를 벗어났습니다 프로세스 당 - log/php-fpm.log에 오류가 있습니다.

관련 문제