머리말
PHP-FPM에 상태 페이지가 내장되어 있다는 것은 누구나 알고 있습니다. 이 페이지를 열면 PHP-FPM의 자세한 실행 상태를 볼 수 있으며 이는 PHP-FPM 최적화에 도움이 됩니다.
php-fpm.conf 열기, php-fpm 상태 페이지 옵션 구성
pm.status_path = /phpfpm_status
nginx.conf 구성, 추가 액세스 가능한 서버
server { listen 80; server_name 127.0.0.1; location /phpfpm_status { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; } }
nginx를 다시 시작하거나 다시 로드하고 php-fpm
service php-fpm restart service nginx restart
브라우저 액세스 결과:
다른 매개변수를 사용하여 php-fpm 상태 출력 형식을 볼 수 있습니다:
http://www.foo.bar/status #默认纯文本 http://www.foo.bar/status?json #json格式 http://www.foo.bar/status?html #html格式 http://www.foo.bar/status?xml #xml格式 #full参数可查看进程详细信息 http://www.foo.bar/status?full http://www.foo.bar/status?json&full http://www.foo.bar/status?html&full http://www.foo.bar/status?xml&full
PHP-FPM 상태 매개변수 설명:
pool – fpm池子名称,大多数为www process manager – 进程管理方式,值:static, dynamic or ondemand. dynamic start time – 启动日期,如果reload了php-fpm,时间会更新 start since – 运行时长 accepted conn – 当前池子接受的请求数 listen queue – 请求等待队列,如果这个值不为0,那么要增加FPM的进程数量 max listen queue – 请求等待队列最高的数量 listen queue len – socket等待队列长度 idle processes – 空闲进程数量 active processes – 活跃进程数量 total processes – 总进程数量 max active processes – 最大的活跃进程数量(FPM启动开始算) max children reached - 大道进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,请改大一点。 slow requests – 启用了php-fpm slow-log,缓慢请求的数量