php-fpm 성능 모니터링 및 튜닝 전략
소개:
인터넷의 발전과 함께 효율적인 서버 측 스크립트 언어인 PHP는 웹 개발 분야에서 널리 사용됩니다. PHP 실행 환경을 위한 솔루션으로 php-fpm은 높은 동시 처리 능력을 갖추고 있습니다. 그러나 동시성이 높은 경우 php-fpm은 성능 병목 현상에 직면하게 됩니다. 이번 글에서는 php-fpm의 성능과 안정성 향상을 목표로 하는 php-fpm의 성능 모니터링과 튜닝 전략을 소개하겠습니다.
1. php-fpm 성능 모니터링
1.1 top 명령은 php-fpm 프로세스를 모니터링합니다.
top 명령을 사용하면 php-fpm 프로세스의 CPU 및 메모리 소비를 모니터링할 수 있습니다. top 명령을 통해 프로세스 ID, CPU 사용량, 메모리 사용량 등 php-fpm 프로세스의 상태 정보를 실시간으로 확인할 수 있습니다. "top -p [pid]" 명령을 사용하여 지정된 php-fpm 프로세스를 모니터링할 수 있습니다.
샘플 코드:
top -p 1234
1.2 php-fpm 상태 페이지
php-fpm은 브라우저를 통해 접속하여 php-fpm의 실행 상태를 실시간으로 확인할 수 있는 상태 페이지를 제공합니다. 이 페이지를 통해 php-fpm의 연결 수, 요청 처리, 프로세스 풀 상태 등의 정보를 얻을 수 있습니다. 이 기능은 php-fpm의 구성 파일에 다음 구성을 추가하여 활성화할 수 있습니다:
pm.status_path = /status
샘플 코드:
http://localhost/status
1.3 성능 모니터링을 위해 swoole 확장 사용
swoole 확장은 고성능 비동기 네트워크 프레임워크입니다. 고성능 PHP 애플리케이션을 개발하는데 사용됩니다. swoole 확장은 php-fpm의 성능 모니터링을 포함한 풍부한 기능을 제공합니다. swoole의 서버 구성 요소를 사용하여 php-fpm의 요청 처리 시간, 연결 수, 요청 볼륨 및 기타 정보를 모니터링할 수 있습니다.
샘플 코드:
<?php $server = new swoole_http_server("0.0.0.0", 9501); $server->on('request', function ($request, $response) { $response->header("Content-Type", "text/plain"); $response->end("Hello World "); }); $server->on('start', function($server) { swoole_timer_tick(1000, function() use ($server){ $stats = $server->stats(); echo "Active Connections: " . $stats['connection_num'] . " "; echo "Total Requests: " . $stats['request_count'] . " "; }); }); $server->start(); ?>
2. php-fpm 성능 조정
2.1 php-fpm 프로세스 수 조정
php-fpm의 성능은 프로세스 수와 큰 관계가 있습니다. php-fpm 프로세스 수는 서버 구성 및 실제 필요에 따라 조정될 수 있습니다. php-fpm 구성 파일에서 다음 매개변수를 수정하여 프로세스 수를 조정할 수 있습니다.
pm.max_children = 50 # 进程池中允许的最大子进程数 pm.start_servers = 20 # 启动时创建的子进程数 pm.min_spare_servers = 10 # 最小空闲子进程数 pm.max_spare_servers = 30 # 最大空闲子进程数
2.2 php-fpm의 프로세스 풀 모델 조정
php-fpm은 여러 프로세스 풀 모델을 지원하며 선택할 수 있습니다. 귀하의 필요에 따라 적절한 모델. php-fpm 구성 파일에서 다음 매개변수를 수정하여 프로세스 풀 모델을 조정할 수 있습니다.
pm = dynamic # 动态进程池模型 pm = static # 静态进程池模型 pm = ondemand # 按需进程池模型
2.3 php-fpm의 요청 시간 초과 조정
php-fpm의 성능도 요청 시간 초과와 관련이 있습니다. php-fpm의 요청 시간 초과는 실제 상황에 따라 조정될 수 있습니다. php-fpm 구성 파일에서 다음 매개변수를 수정하여 요청 시간 초과를 조정할 수 있습니다:
request_terminate_timeout = 60 # 请求处理超时时间,单位为秒 request_slowlog_timeout = 10 # 请求慢日志超时时间,单位为秒
2.4 php-fpm의 메모리 제한 조정
php-fpm의 성능은 메모리 사용량과도 관련이 있습니다. php-fpm의 메모리 제한은 서버 구성과 실제 요구 사항에 따라 조정될 수 있습니다. php-fpm 구성 파일에서 다음 매개변수를 수정하여 메모리 제한을 조정할 수 있습니다.
pm.max_requests = 1000 # 单个子进程处理的最大请求数 php_admin_value[memory_limit] = 128M # 单个子进程的内存限制
결론:
php-fpm 성능을 모니터링하고 조정하면 php-fpm의 성능과 안정성을 향상시킬 수 있습니다. 모니터링 측면에서는 top 명령, 상태 페이지 또는 swoole 확장을 사용하여 php-fpm의 실행 상태를 실시간으로 볼 수 있습니다. 튜닝 측면에서 프로세스 수, 프로세스 풀 모델, 요청 시간 초과, 메모리 제한과 같은 매개변수를 조정하여 php-fpm의 성능을 최적화할 수 있습니다. 이 글이 php-fpm의 성능 모니터링과 튜닝에 도움이 되기를 바랍니다.
위 내용은 php-fpm 성능 모니터링 및 튜닝 전략의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!