对于php-fpm的參数设置,非常多情况下有这种疑问,就是内置的几个參数比如pm.max_children,pm.start_servers等这几个參数究竟该设置最多为多少才合适。事实上这几个參数往往取决于当前的连接数情况,而大多数情况下,我们非常难断定当前的连接数情况对于我们的pm等几个參数是否合适。所以借助于php-fpm状态页能够非常方便的告诉我们这几个參数的设置是否合适。



    要开启php-fpm的状态页事实上非常easy在nginx的配置文件里增加:

    location /status {

            auth_basic "status page";

            auth_basic_user_file /etc/nginx/login;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

            include fastcgi_params;

            fastcgi_pass 127.0.0.1:9000;

        }

    上面的auth_basic和auth_basic_user_file不是必须的,但这些都是敏感信息,一般不能让其他人看到,所以这里做了认证。在php-fpm.conf中打开:

    pm.status_path = /status

    

    然后在浏览器中打开localhost/status就能够查看到当前的状态信息了

    pool:                 www

    process manager:      dynamic

    start time:           17/Aug/2014:15:25:50 -0400

    start since:          7702

    accepted conn:        1486

    listen queue:         0

    max listen queue:     129

    listen queue len:     128

    idle processes:       9

    active processes:     1

    total processes:      10

    max active processes: 20

    max children reached: 2

    slow requests:        0



    以下介绍每一个參数的作用:

    pool:php-fpm池的名称,一般都是应该是www

    process manage:进程的管理方法,php-fpm支持三种管理方法,各自是static,dynamic和ondemand,普通情况下都是dynamic

    start time:php-fpm启动时候的时间,无论是restart或者reload都会更新这里的时间

    start since:php-fpm自启动起来经过的时间,默觉得秒

    accepted conn:当前接收的连接数

    listen queue:在队列中等待连接的请求个数,假设这个数字为非0,那么最好添加进程的fpm个数

    max listen queue:从fpm启动以来,在队列中等待连接请求的最大值

    listen queue len:等待连接的套接字队列大小

    idle processes:空暇的进程个数

    active processes:活动的进程个数

    total processes:总共的进程个数

    max active processes:从fpm启动以来,活动进程的最大个数,假设这个值小于当前的max_children,能够调小此值

    max children reached:当pm尝试启动很多其它的进程,却由于max_children的限制,没有启动很多其它进程的次数。假设这个值非0,那么能够适当添加fpm的进程数

    slow requests:慢请求的次数,一般假设这个值未非0,那么可能会有慢的php进程,一般一个不好的mysql查询是最大的祸首。



    假设想看到更加具体的信息,能够使用localhost/status?full查看每一个子进程更加额外的信息,拿当中的一个子进程来说明:

    pid:                  6917

    state:                Idle

    start time:           17/Aug/2014:15:27:46 -0400

    start since:          8399

    requests:             35

    request duration:     69295

    request method:       GET

    request URI:          /member.php?mod=logging&action=login&infloat=yes&frommessage&inajax=1&ajaxtarget=messagelogin

    content length:       0

    user:                 -

    script:               /usr/local/nginx/html/member.php

    last request cpu:     72.16

    last request memory:  3145728

    

    这里的都比較好理解,主要看下content length和user

    content length:这里记录的是POST请求的内容长度.

    user:假设设置了PHP_AUTH_USER就会显示对于的值,否则显示为0.

    

    这里须要注意的是假设state的状态为空暇的话,那么这些相关的信息将会以最后请求的服务相关,否则信息取决于当前请求的服务.

使用php-fpm状态页观察当前的php-fpm状态的更多相关文章

  1. Nginx 高级配置-状态页配置

    Nginx 高级配置-状态页配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 建议将nginx的监控状态的值通过zabbix或者Open-Falcon之类的监控工具来监控状态,并 ...

  2. nginx启用status状态页

    nginx和php-fpm一样都内建了一个状态页,通过查看状态页信息可以连接到nginx服务负载情况,还可以利用状态页信息配zabbix监控,这里先介绍nginx的status状态页的使用. stau ...

  3. TCP状态转换图、滑动窗口、半连接状态、2MSL

    一.TCP状态转换图 下图对排除和定位网络或系统故障时大有帮助,也帮助我们更好的编写Linux程序,对嵌入式开发也有指导意义.    先回顾一下TCP建立连接的三次握手过程,以及关闭连接的四次握手过程 ...

  4. TCP的状态兼谈Close_Wait和Time_Wait的状态

    原文链接: http://www.2cto.com/net/201208/147485.html TCP的状态兼谈Close_Wait和Time_Wait的状态   一 TCP的状态: 1).LIST ...

  5. 重学 Java 设计模式:实战状态模式「模拟系统营销活动,状态流程审核发布上线场景」

    作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! @ 目录 一.前言 二.开发环境 三.状态模式介绍 四.案例场景模拟 1 ...

  6. jq:翻页时,保存上页多选框checkbox选中状态

    这里主要讲一种:中间的 checkbox 是 通过Ajax调出的. 则翻页时,为了保存上页的选定状态,可在页面中定义一个变量,用来存储选中状态的值. <input class="cli ...

  7. 查看Tomcat状态页,管理app,主机管理

    Server Status 通过点击这个按钮我们可以查看Tomcat的状态,点击,弹出403错误页面 通过查看官方文档 因此,创建manager.xml # cat /usr/local/tomcat ...

  8. HAProxy的状态页

    启用基于程序编译时默认设置的统计报告,不能用于"frontend"区段,只要没有另外的其他设定,他们就会使用如下的配置stats uri    : /haproxy$statsst ...

  9. 11月6日下午PHP注册审核(审核状态控制登录、可以更改审核状态)

    1.创建登录界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

随机推荐

  1. 返璞归真 asp.net mvc (1) - 添加、查询、更新和删除的 Demo

    原文:返璞归真 asp.net mvc (1) - 添加.查询.更新和删除的 Demo [索引页] [源码下载] 返璞归真 asp.net mvc (1) - 添加.查询.更新和删除的 Demo 作者 ...

  2. MongoDB学习笔记-命令

    连接数据库: mongodb://账号:密码@IP/库名 更多方式参考:http://www.runoob.com/mongodb/mongodb-connections.html 命令整理: 名称 ...

  3. Python 显示LinkedIn用户作业

    CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-8-18 @author: guaguastd @name: j ...

  4. Java的结构之美【2】——销毁对象

    先来看一段代码: import java.util.Arrays; import java.util.EmptyStackException; /** * 2014年6月28日09:31:59 * @ ...

  5. Android - 数据存储 -在SQL数据库中保存数据

    对于重复的或结构化的数据,保存到数据库中是很好的选择,比如联系人信息.这里假设你对SQL数据库大体上了解然后帮助你学习Android上的SQLite数据库.在Android数据库上需要用到的API可以 ...

  6. SQL Server 2005,2008 正则表达式 替换函数应用详解

    CREATE function dbo.regexReplace ( @source ntext, --原字符串 ), --正则表达式 ), --替换值 , --是否是全局替换 --是否忽略大小写 ) ...

  7. SDI接口

    SDI接口,是"数字分量串行接口". SDI接口是数字分量串行接口(serial digital interface)的首字母缩写. 1简单介绍编辑 SDI接口是一种"数 ...

  8. Top与ROW_NUMBER

    论Top与ROW_NUMBER读取第一页的效率问题   前一段时间研究关于分页的问题,由于数据库属于百万级的,考虑了关于优化方面的问题.其中一个考虑是:第一页展现的频率肯定是最高的,所以我想第一页就使 ...

  9. React.js入门笔记 创建hello world 的6种方式

    一.ReactJS简介 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站. ...

  10. AE 先进的视频画面 快速释放 慢动作

    视频画面细腻,或快速释放.慢速播放视频.其实很easy.在使用图层time中间Enable Time remapping能够.快捷键ctrl+alt+T债券,我无法使用,我没有深究. 在这一点上,在视 ...