- /var/log/php8.1-fpm.log 에러 메시지, 웹 사이트 응답 안함 
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
- 해결 방법
pm.max_children 설정 값을 늘린다.
     - 로그 확인
sudo cat /var/log/php8.1-fpm.log 
sudo tail -n 1000 /var/log/nginx/error.log 
     - 설정 
sudo nano /etc/php/8.1/fpm/pool.d/www.conf 
     - 수정후 설정 적용(php-fpm재시작) 
sudo systemctl restart php8.1-fpm 
//------------------------------------- 
     - free 메모리 
$ free 
     - 메모리 사용량 보기 - ps_mem 
     ps_mem 설치 
sudo pip3 install ps_mem
     - ps_mem 실행 
sudo ps_mem 
          - 프로세스 이름 뒤에 괄호 속 숫자가 프로세스 수 
//------------------------------------- 
     - php-fpm 평균 메모리 사용량 
$ ps --no-headers -o "rss,cmd" -C php-fpm8.1 | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }' 
     -> 50M (40~80) 
     nginx  평균 메모리 사용량 
$ ps --no-headers -o "rss,cmd" -C nginx | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }' 
     -> 5M 
//------------------------------------- 
< pm.max_children 적정값 계산 방법>
https://serverfault.com/questions/939436/understand-correctly-pm-max-children-tuning
apache 는 255가 한계 
- 가용 메모리 / 80M (1개 자식 프로세스가 사용하는 메모리 용량) 
- 예) 1GB 가 가용한 경우 1000 / 80 = 12 
//------------------------------------- 
pm (process manager) 옵션 설명 
https://www.php.net/manual/en/install.fpm.configuration.php
     - /etc/php/8.1/fpm/pool.d/www.conf 설정 파일 옵션 설명 
(pm=static) 
: pm.max_children 수만큼 고정으로 생성 
(pm=dynamic) 
pm.max_children = 20 
     - PHP_FCGI_CHILDREN 환경 변수 
     - 최대 자식 프로세스(인스턴스) 수 
pm.start_servers = 8 
     - 시작 시 생성되는 하위 프로세스 수 
     기본값: (min_spare_servers + max_spare_servers) / 2 
pm.min_spare_servers = 5 
     - 최소 유휴 서버 프로세스 수 
pm.max_spare_servers = 10 
     - 최대 유휴 서버 프로세스 수 
;pm.max_spawn_rate = 32 
     -  기본값: 32 
     - 한 번에 하위 프로세스를 생성하는 속도 수 
(pm=ondemand) 
;pm.process_idle_timeout = 10초; (pm=ondemand) 
; 기본값: 10초 
- 유휴 프로세스가 종료 시키는 시간, 작을 수록 빠른 정리 
pm.max_requests = 10000 
     - 기본값: 0 ,  
     - 환경변수 PHP_FCGI_MAX_REQUESTS 의 기능 
     - 지정한 갯수의 실행을 한후 다시 생성됨, 메모리 누출 대비, 0이면 재생성 안함(무한 사용) 
     - 5000 ~ 15000 추천 
//------------------------------------- 
리눅스 php-fpm 최적화 – pm.max_children 개수 결정 
https://mytory.net/archives/13158
'Code > PHP' 카테고리의 다른 글
| preg_replace 등에서 유니코드 처리, 이스케이핑 (0) | 2024.08.27 | 
|---|---|
| 재부팅시 라라벨 에러 로그 발생하는 문제 해결 방법 (0) | 2023.12.27 | 
| [php 웹보안] 이중 인코딩( Double encoding) 공격 방법과 대책 (0) | 2022.11.23 | 
| php 8.1 설치 (ubuntu) (0) | 2022.08.03 | 
| [Laravel] SiteMap 만들기 (0) | 2022.05.15 | 










