>백엔드 개발 >PHP 튜토리얼 >phpfpm은 자체 상태 최적화 단계를 사용합니다.

phpfpm은 자체 상태 최적화 단계를 사용합니다.

WBOY
WBOY원래의
2016-07-29 09:14:481661검색

php-fpm에는 nginx와 같은 상태 페이지가 내장되어 있는데, 이는 php-fpm의 상태를 이해하고 php-fpm을 모니터링하는 데 매우 유용합니다. 이후의 zabbix 모니터링을 위해서는 먼저 php-fpm 상태 페이지에서 무슨 일이 일어나고 있는지 이해해야 합니다.

1. php-fpm 상태 기능 활성화

<code><span># cat  /usr/local/php-5.5.10/etc/php-fpm.conf | grep status_path</span>
pm.status_path = /status</code>

2. nginx 구성

<code>server {
    listen  *:<span>80</span> default_server;
    server_name _;
    location ~ ^/(status|ping)$
    {
        <span><strong>include</strong></span> fastcgi_params;
        fastcgi_pass <span>127.0</span><span>.0</span><span>.1</span>:<span>9000</span>;
        fastcgi_param SCRIPT_FILENAME <span>$fastcgi_script_name</span>;
    }
}</code>

3. nginx/php-fpm 다시 시작

4. 상태 페이지 열기
<code>service nginx restart
service php<span>-fpm</span> restart</code>

5. php-fpm 상태에 대한 자세한 설명
<code><span># curl http://www.ttlsa.com/status</span>
pool:                 www
process manager:      dynamic
start time:           <span>14</span>/May/<span>2014</span>:<span>22</span>:<span>40</span>:<span>15</span> +<span>0800</span>
start since:          <span>58508</span>
accepted conn:        <span>33</span>
listen queue:         <span>0</span>
max listen queue:     <span>8</span>
listen queue len:     <span>0</span>
idle processes:       <span>2</span>
active processes:     <span>1</span>
total processes:      <span>3</span>
max active processes: <span>5</span>
max children reached: <span>0</span>
slow requests:        <span>2091</span></code>

pool – fpm 풀 이름, 대부분 www
    프로세스 관리자 - 프로세스 관리 방법, 값: 정적, 동적 또는 주문형 동적
  • 시작 시간 – 시작 날짜, php-fpm을 다시 로드하면 시간이 업데이트됩니다
    시작 이후 – 실행 시간
    Accepted conn – 현재 풀에서 수락한 요청 수


    listen queue 최대 청취 대기열 – 请求等待<strong>队列</strong>,如果这个值不为0,那么要增加FPM的进程数量 대기열
    에서 대기 중인 최대 요청 수 청취 큐 len – 소켓 대기
    길이 유휴 프로세스 – 유휴 프로세스 수 활성 프로세스 – 활성 프로세스 수
    총 프로세스 – 총 프로세스 수
    최대 활성 프로세스 – 최대 활성 프로세스 수(FPM 시작에서 계산)

    -
    max children reached 느린 요청 – php-fpm 느린 로그가 활성화되어 있으며 느린 요청 수大道进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,请改大一点。
  • 6. php-fpm의 기타 매개변수

php- fpm 상태 페이지는

,
, json 등의 매개변수를 사용할 수 있으며 처음 세 매개변수는 각각 xml과 결합될 수 있습니다. htmlfull
6.1json
<code># curl http://<span>127.0</span><span>.0</span><span>.1</span>/status?json
{"<span>pool</span>":<span><span>"www"</span></span>,"<span>process manager</span>":<span><span>"dynamic"</span></span>,"<span>start time</span>":<span><span>1400078415</span></span>,"<span>start since</span>":<span><span>59624</span></span>,"<span>accepted conn</span>":<span><span>27</span></span>,"<span>listen queue</span>":<span><span>0</span></span>,"<span>max listen queue</span>":<span><span>8</span></span>,"<span>listen queue len</span>":<span><span>0</span></span>,"<span>idle processes</span>":<span><span>2</span></span>,"<span>active processes</span>":<span><span>1</span></span>,"<span>total processes</span>":<span><span>3</span></span>,"<span>max active processes</span>":<span><span>5</span></span>,"<span>max children reached</span>":<span><span>0</span></span>,"<span>slow requests</span>":<span><span>2145</span></span>}</code>
6.2xml
<code># curl http://127.0.0.1/status?xml
<span><?xml version="1.0" ?></span><span><<span>status</span>></span><span><<span>pool</span>></span>www<span></<span>pool</span>></span><span><<span>process-manager</span>></span>dynamic<span></<span>process-manager</span>></span><span><<span>start-time</span>></span>1400078415<span></<span>start-time</span>></span><span><<span>start-since</span>></span>59640<span></<span>start-since</span>></span><span><<span>accepted-conn</span>></span>36<span></<span>accepted-conn</span>></span><span><<span>listen-queue</span>></span>0<span></<span>listen-queue</span>></span><span><<span>max-listen-queue</span>></span>8<span></<span>max-listen-queue</span>></span><span><<span>listen-queue-len</span>></span>0<span></<span>listen-queue-len</span>></span><span><<span>idle-processes</span>></span>2<span></<span>idle-processes</span>></span><span><<span>active-processes</span>></span>1<span></<span>active-processes</span>></span><span><<span>total-processes</span>></span>3<span></<span>total-processes</span>></span><span><<span>max-active-processes</span>></span>5<span></<span>max-active-processes</span>></span><span><<span>max-children-reached</span>></span>0<span></<span>max-children-reached</span>></span><span><<span>slow-requests</span>></span>2145<span></<span>slow-requests</span>></span></code>
6.3html
<code># curl http://127.0.0.1/status?html
<span><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"></span><span><<span>html</span><span>xmlns</span>=<span>"http://www.w3.org/1999/xhtml"</span><span>xml:lang</span>=<span>"en"</span><span>lang</span>=<span>"en"</span>></span><span><<span>head</span>></span><span><<span>title</span>></span>PHP-FPM Status Page<span></<span>title</span>></span><span></<span>head</span>></span><span><<span>body</span>></span><span><<span>table</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>pool<span></<span>th</span>></span><span><<span>td</span>></span>www<span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>process manager<span></<span>th</span>></span><span><<span>td</span>></span>dynamic<span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>start time<span></<span>th</span>></span><span><<span>td</span>></span>14/May/2014:22:40:15 +0800<span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>start since<span></<span>th</span>></span><span><<span>td</span>></span>59662<span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>accepted conn<span></<span>th</span>></span><span><<span>td</span>></span>8<span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>listen queue<span></<span>th</span>></span><span><<span>td</span>></span>0<span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>max listen queue<span></<span>th</span>></span><span><<span>td</span>></span>8<span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>listen queue len<span></<span>th</span>></span><span><<span>td</span>></span>0<span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>idle processes<span></<span>th</span>></span><span><<span>td</span>></span>2<span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>active processes<span></<span>th</span>></span><span><<span>td</span>></span>1<span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>total processes<span></<span>th</span>></span><span><<span>td</span>></span>3<span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>max active processes<span></<span>th</span>></span><span><<span>td</span>></span>5<span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>max children reached<span></<span>th</span>></span><span><<span>td</span>></span>0<span></<span>td</span>></span><span></<span>tr</span>></span><span><<span>tr</span>></span><span><<span>th</span>></span>slow requests<span></<span>th</span>></span><span><<span>td</span>></span>2147<span></<span>td</span>></span><span></<span>tr</span>></span><span></<span>table</span>></span><span></<span>body</span>></span><span></<span>html</span>></span></code>
6.4 full
<code># curl http://127.0.0.1/status?full
pool:                 www
process manager:      dynamic
start time:           14/May/2014:22:40:15 +0800
start since:          59695
accepted conn:        1
listen queue:         0
max listen queue:     8
listen queue len:     0
idle processes:       2
active processes:     1
total processes:      3
max active processes: 5
max children reached: 0
slow requests:        2148

************************
pid:                  29050
state:                Idle
start time:           15/May/2014:15:09:32 +0800
start since:          338
requests:             62
request duration:     1025585
request method:       GET
request URI:          /index.php
content length:       0
user:                 -
script:               /data/site/www.ttlsa.com/index.php
last request cpu:     45.83
last request memory:  24903680
.....省略几个PID....</code>
6.5 full 상세 설명
  • pid – 프로세스 PID, 이 프로세스만 종료해도 됩니다. 이 PID를 사용하여 장기 실행 프로세스를 종료할 수 있습니다.
  • state – 현재 프로세스의 상태(Idle, Running, ...)
  • 시작 시간 – 프로세스가 시작된 날짜
    시작 이후 – 현재 프로세스 실행 시간
    요청 – 현재 프로세스에서 처리된 요청 수
    요청 기간 – 요청 기간(초)
    요청 메소드 - 요청 메소드(GET, POST, ...)
    요청 URI – 요청 URI
    콘텐츠 길이 – 콘텐츠 길이 요청(POST에만 해당)
    user – 사용자(PHP_AUTH_USER)(또는 설정되지 않은 경우 '-')
    script – PHP 스크립트(또는 설정되지 않은 경우 '-')
    마지막 요청 CPU – 마지막 요청 CPU 사용량입니다.
    last request memorythe - 마지막 요청에 사용된 메모리

  • 7. 완료

php-fpm 상태 페이지는 zabbix 또는 nagios 모니터링을 사용할 때 xml 사용을 고려할 수 있습니다. 또는 기본 방법. 웹을 사용한다면 html을 사용하는 것이 좋습니다. 표가 더 명확해집니다.

위 내용은 관련 내용을 포함하여 phpfpm이 자체 상태 최적화를 사용하는 단계를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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