PHP-FPM(FastCGI Process Manager)은 PHP에서 중요한 성능 구성 요소 중 하나이다.
특히 www.conf
파일을 통해 프로세스 관리 방식을 최적화하면, 더 많은 동시 요청을 효율적으로 처리할 수 있다.
이 글에서는 PHP 8.4 기준으로 PHP-FPM의 프로세스 관리 관련 설정을 정리했다. 🧠
📚 목차
1. PHP-FPM 프로세스 관리 설정 ⚙️
PHP-FPM은 워커 프로세스를 통해 동시 요청을 처리한다./etc/php/8.4/fpm/pool.d/www.conf
파일을 수정하여 이 프로세스의 동작 방식을 최적화할 수 있다.
cd /etc/php/8.4/fpm/pool.d
sudo nano www.conf
1.1 주요 설정 항목
- pm: 프로세스 관리 방식 (기본값:
dynamic
)
pm
은 아래 세 가지 모드 중 하나로 설정할 수 있다:
- 🟢 static: 고정된 수의 프로세스를 유지한다. 트래픽이 일정한 경우 적합하다.
- 🔁 dynamic: 요청 수에 따라 프로세스 수를 유동적으로 조절한다. 대부분의 서버에 권장된다.
- 📡 ondemand: 요청이 들어올 때만 프로세스를 생성한다. 리소스 절약이 필요할 때 유용하다.
pm = dynamic
🔹 pm.max_children
생성 가능한 최대 프로세스 수를 지정한다. 서버의 메모리 용량에 따라 설정해야 한다.
pm.max_children = 50
🔹 pm.start_servers
PHP-FPM이 시작할 때 생성할 초기 프로세스 수이다.
pm.start_servers = 5
🔹 pm.min_spare_servers
요청이 없을 때 유지할 최소 대기 프로세스 수이다.
pm.min_spare_servers = 5
🔹 pm.max_spare_servers
요청이 없을 때 유지할 최대 대기 프로세스 수이다.
pm.max_spare_servers = 10
🔹 pm.max_requests
각 프로세스가 처리할 최대 요청 수를 의미한다. 이 값을 설정하면 일정 횟수 후 프로세스를 재시작하여 메모리 누수 방지에 도움이 된다.
pm.max_requests = 500
2. 설정 예시 및 적용 방법 🔄
✅ 설정 예시 (동적 프로세스 모드 기준)
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 500
💡 위 설정은 RAM이 2GB 이상인 서버 기준으로 적절한 예시이다.
메모리 자원이 적거나 많은 경우, pm.max_children
값을 조정해야 한다.
🔁 설정 적용
설정 후 PHP-FPM 서비스를 재시작해야 변경 사항이 반영된다.
sudo systemctl restart php8.4-fpm
💬 마무리
www.conf
를 통한 PHP-FPM 튜닝은 웹 애플리케이션의 처리 속도와 안정성에 직접적인 영향을 준다.
특히 트래픽이 많은 환경이나 WooCommerce, Laravel 등 프레임워크 기반 사이트에서는 이 설정이 매우 중요하다.
운영 중인 서버의 사양과 트래픽 패턴을 고려하여, 각 항목을 균형 있게 조정하는 것이 성능 최적화의 핵심이다. 🚀
다음 글에서는 OPcache 설정을 통한 PHP 실행 속도 향상에 대해 알아보자. 💡
'LEMP stack > PHP' 카테고리의 다른 글
PHP opcache 상태 실시간 모니터링 (0) | 2025.04.17 |
---|---|
PHP opcache 활성화로 성능 최적화하기 (0) | 2025.04.15 |
PHP8.4-fpm 연동 php.ini 설정 (1) | 2025.04.04 |
Nginx와 PHP8.4-FPM 연동 (Ubuntu 기반) (0) | 2025.04.03 |
Ubuntu에 PHP8.4-FPM 최신 버전 설치 (Ondřej Surý PPA 활용 + Laravel 연동까지) (0) | 2025.04.03 |