본문 바로가기

개발/PHP

502 Bad Gateway PHP-FPM 최적화

Nginx, MySQL, PHP0FPM, PHP 8 환경에서 child-process 가 부족하여 lock 발생 에러 확인될 경우 php-fpm conf 파일을 수정하여 최대 요청과 프로세스 수를 수정합니다.

 

[21-Feb-2022 05:14:17] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it

 

php7.4-fpm 평균 프로세스 메모리 추적

ps --no-headers -o "rss,cmd" -C php7.4-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"Mb") }'

 

서버 메모리 확인

free -h

 

pm.max_children 계산 

서버 메모리 8GB일 경우, 8000MB / 20MB = 400

 

pm.max_children = 400 // 동시 최대 프로세스 수 

pm.start_servers = 120 // 처음 시작할 때 max_children 30% 

pm.min_spare_servers = 80// 최소 사용값 max_children 20%

pm.max_spare_servers = 200// 최대 사용값 max_children 50% (이 수가 넘어가면 프로세스 삭제)

pm.max_requests = 500 // 최대 요청값

 

 

 

'개발 > PHP' 카테고리의 다른 글

Secure Coding - SQL Injection  (0) 2021.01.08
PSR-0, PSR-1, PSR-2 (PHP Standards Recommendations)  (0) 2020.09.07
PHP 7 엄격한 타이핑 (strict mode)  (0) 2020.09.07
PHP CI Chunk File Upload - Plupload  (0) 2020.06.05