>  기사  >  백엔드 개발  >  php-fpm 프로세스 풀 구성을 위한 성능 최적화 옵션

php-fpm 프로세스 풀 구성을 위한 성능 최적화 옵션

WBOY
WBOY원래의
2023-07-09 08:22:36796검색

php-fpm 프로세스 풀 구성을 위한 성능 최적화 옵션

  PHP는 매우 널리 사용되는 프로그래밍 언어이며 웹 개발에 널리 사용됩니다. 그리고 php-fpm은 PHP에서 제공하는 FastCGI 프로세스 관리자로, 서버 리소스를 최대한 활용하고 성능을 향상시킬 수 있습니다. 이 기사에서는 PHP 애플리케이션의 성능을 향상시키기 위해 php-fpm 프로세스 풀 구성을 최적화하는 방법을 소개합니다.

  1. 기본 개념

  php-fpm 프로세스 풀 구성을 최적화하는 방법을 이해하기 전에 몇 가지 기본 개념을 이해해야 합니다.

 1. 프로세스 풀: php-fpm은 프로세스 풀을 통해 PHP 인터프리터의 프로세스를 관리합니다. 프로세스 풀은 php-fpm 작업의 기본 단위입니다. 각 프로세스 풀에는 마스터 프로세스와 여러 작업자 프로세스가 있습니다.

 2. 마스터 프로세스: 작업자 프로세스의 생성, 삭제 및 다시 시작을 관리하는 역할을 담당합니다.

  3. 작업자 프로세스: 클라이언트 요청 처리 및 PHP 스크립트 실행을 담당합니다.

 2. 프로세스 풀 구성

 php-fpm의 프로세스 풀 구성 파일은 중요한 성능 최적화 도구입니다. 서버의 리소스 상황과 애플리케이션의 필요에 따라 프로세스 풀의 구성을 조정할 수 있습니다. 다음은 일반적으로 사용되는 프로세스 풀 구성 옵션입니다.

  1. pm: 프로세스 관리 방법

 pm 구성 항목은 프로세스 관리 방법을 지정하는 데 사용됩니다. 일반적으로 사용되는 값은 다음과 같습니다.
 - static: 정적 모드, 요청을 처리하기 위해 고정된 수의 작업자 프로세스 시작 static:静态方式,启动固定数量的worker进程来处理请求;
  - dynamic:动态方式,根据请求量动态调整worker进程的数量;
  - ondemand - 동적: 동적 모드, 그에 따라 동적으로 작업자 조정 요청 수에 따라 프로세스 수

  - ondemand: 주문형 모드, 필요할 때만 작업자 프로세스를 시작합니다.

 pm 구성 항목의 값은 프로세스 풀의 성능에 영향을 미칩니다. 정적 방식은 요청량이 안정적인 환경에 적합하며, 프로세스의 빈번한 생성과 소멸을 방지할 수 있으며, 동적 방식은 요청량의 변동이 큰 환경에 적합하며 요청에 따라 프로세스 수가 자동으로 조정될 수 있습니다. 온디맨드 방식은 요청량이 적은 환경에 적합하며 필요에 따라 프로세스를 시작할 수 있습니다.
  1. pm.max_children: 작업자 프로세스 수의 상한

 pm.max_children 구성 항목은 작업자 프로세스 수를 제한하는 데 사용됩니다. 이 값의 설정은 서버의 리소스 상황에 따라 조정되어야 합니다. 설정이 너무 높으면 너무 많은 메모리를 차지하고 시스템 로드가 너무 높아집니다. 설정이 너무 낮으면 요청이 제때 처리되지 않습니다.
  1. pm.start_servers: 처음 시작된 작업자 프로세스 수

 pm.start_servers 구성 항목은 처음 시작된 작업자 프로세스 수를 지정하는 데 사용됩니다. 요청량이 많은 경우 이 값을 적절하게 늘려 성능을 향상시킬 수 있습니다. 이 값은 pm.max_children의 1/3로 설정하는 것이 좋습니다.
  1. pm.min_spare_servers 및 pm.max_spare_servers: 유휴 작업자 프로세스 수 범위

pm.min_spare_servers 및 pm.max_spare_servers 구성 항목은 유휴 작업자 프로세스 수 범위를 설정하는 데 사용됩니다. 유휴 프로세스 수가 pm.min_spare_servers보다 적으면 php-fpm은 새 작업자 프로세스를 시작합니다. 유휴 프로세스 수가 pm.max_spare_servers보다 높으면 php-fpm은 초과 작업자 프로세스를 삭제합니다. 이 두 값을 적절하게 설정하면 서버 리소스 낭비를 피할 수 있습니다.

  3. 샘플 구성

다음은 php-fpm 프로세스 풀 구성 파일의 예입니다.

[global]
pid = /var/run/php-fpm.pid
error_log = /var/log/php-fpm.log
log_level = warning

[www]
listen = /var/run/php-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
listen.backlog = 511

user = www-data
group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

request_terminate_timeout = 60s
request_slowlog_timeout = 0s
slowlog = /var/log/php-fpm-slow.log

rlimit_files = 1024
rlimit_core = 0
catch_workers_output = yes
pm.status_path = /status
ping.path = /ping
ping.response = pong

위 구성 파일에서 pm을 동적으로 지정하고 pm.max_children을 50으로 설정하고 해당 시작을 설정합니다. 및 유휴 프로세스 수량 범위는 더 나은 성능을 제공할 수 있습니다.

결론: php-fpm 프로세스 풀 구성을 최적화하면 PHP 애플리케이션의 성능을 향상시킬 수 있습니다. 서버의 리소스 상황과 애플리케이션의 요구 사항에 따라 프로세스 관리 방법과 프로세스 수를 합리적으로 조정하면 더 나은 성능과 리소스 활용도를 얻을 수 있습니다. 🎜

위 내용은 php-fpm 프로세스 풀 구성을 위한 성능 최적화 옵션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.