>백엔드 개발 >PHP 튜토리얼 >php-fpm 성능 모니터링 및 튜닝 전략

php-fpm 성능 모니터링 및 튜닝 전략

WBOY
WBOY원래의
2023-07-07 08:39:091391검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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