2012-08-18 2 views
2

아파치 + fastcgi를 사용하여 64GB RAM의 서버를 사용하여 php-fpm에 연결합니다.php-fpm "풀 사용 중 오류"입니다. 나는 왜 이것을 얻고 있는가?

ApacheBench로 일부로드 테스트를 실행 중입니다. 500k reqs, 200reqs/sec (목표는 서버 당 10k/초). 나는 계속해서 "풀이 바쁜 것처럼 보입니다"라고 말하면서 fpm이 200reqs/sec를 제대로 처리 할 수 ​​있도록 설정하는 방법을 잃어 버렸습니다. 내가 명백한 것을 놓치고있는 것처럼 느껴진다.

FPM-설정 :

pm = dynamic 
pm.max_children = 8192 
pm.start_servers = 2048 
pm.min_spare_servers = 2048 
pm.max_spare_servers = 2048 
pm.max_requests = 8000 

아파치 설정 : 내가 잘못 뭐하는 거지

<IfModule worker.c> 
StartServers   2048 
ServerLimit  8175 
MaxClients   8175 
MinSpareThreads 2048 
MaxSpareThreads  2048 
ThreadsPerChild  25 
MaxRequestsPerChild 8000 
</IfModule> 

?

답변

0

내 초기 반응은 요청 당 대기 시간이 많지 않으면 최대 8000 명의 어린이가 실행되는 과정이 상당히 많은 것 같습니다. 잠시 후 컨텍스트 스위치가 실행중인 프로세스를 CPU 시간의 안팎으로 바꿔 버릴 수 있기 때문에 많은 수의 프로세스가 실제로 성능 저하를 유발합니다. 대기중인 프로세스가 많은 외부 서비스 호출이 없으면 약간 과장된 것으로 보입니다. 또한 요청시 할당 된 20MB의 가정으로 start_servers를 제공하기 위해 사용 가능한 RAM의 60 % 이상을 사용하고 있습니다.

"수영장이 바쁜 것처럼 보임"오류는 분명히 알지 못합니다. 환경에 깊이 빠지지 않고 말하기가 어렵습니다. AB와 같은 무료 CPU 시간과 메모리 사용률은 얼마입니까? 열 수있는 연결의 수 (FPM 등) 개별 프로세스에 대한 시스템 제한이있는 경우

가 나는 또한 궁금 ... 확인 ulimit를 -a