php php-fpm - php-fpm status

【基本介绍】
这里介绍php-fpm的status.可以查看php-fpm的进程相关的信息。

【基本配置】
php-fpm的配置文件,使用pm.status_pat=

; The URI to view the FPM status page. If this value is not set, no URI will be
; recognized as a status page. By default, the status page shows the following
; information:
; accepted conn - the number of request accepted by the pool;
; pool - the name of the pool;
; process manager - static or dynamic;
; idle processes - the number of idle processes;
; active processes - the number of active processes;
; total processes - the number of idle + active processes.
; The values of 'idle processes', 'active processes' and 'total processes' are
; updated each second. The value of 'accepted conn' is updated in real time.
; Example output:
; accepted conn: 12073
; pool: www
; process manager: static
; idle processes: 35
; active processes: 65
; total processes: 100
; By default the status page output is formatted as text/plain. Passing either
; 'html' or 'json' as a query string will return the corresponding output
; syntax. Example:
; http://www.foo.bar/status
; http://www.foo.bar/status?json
; http://www.foo.bar/status?html
; Note: The value must start with a leading slash (/). The value can be
; anything, but it may not be a good idea to use the .php extension or it
; may conflict with a real PHP file.
; Default Value: not set
pm.status_path = /fpm-status


在web服务中添加配置,
例如:nginx中添加location

location ~ ^/(status|ping)$ {
access_log off;
allow 127.0.0.1;
allow 1.2.3.4#your-ip;
deny all;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;


【结果分析】
http://domain/fpm-status

pool: www #fpm池子名称,大多数为www
process manager: dynamic #进程管理方式,值:static, dynamic or ondemand. dynamic
start time: 17/Nov/2014:22:59:48 +0800 #启动日期,如果reload了php-fpm,时间会更新
start since: 59509 # 运行时长
accepted conn: 115850 #当前池子接受的请求数
listen queue: 0 #请求等待队列,如果这个值不为0,那么要增加FPM的进程数量
max listen queue: 1 #请求等待队列最高的数量
listen queue len: 0 #socket等待队列长度
idle processes: 14 #空闲进程数量
active processes: 2 #活跃进程数量
total processes: 16 #总进程数量
max active processes: 9 #最大的活跃进程数量(FPM启动开始算)
max children reached: 0 #大道进程最大数量限制的次数,如果这个数量不为0,
#那说明你的最大进程数量太小了,请改大一点。
slow requests: 3 #启用了php-fpm slow-log,缓慢请求的数量


【其他参数】
php-fpm状态页比较个性化的一个地方是它可以带参数,可以带参数json、xml、html并且前面三个参数可以分别和full做一个组合。(见参考引用链接)

full详解
pid – 进程PID,可以单独kill这个进程. You can use this PID to kill a long running process.
state – 当前进程的状态 (Idle, Running, …)
start time – 进程启动的日期
start since – 当前进程运行时长
requests – 当前进程处理了多少个请求
request duration – 请求时长(微妙)
request method – 请求方法 (GET, POST, …)
request URI – 请求URI
content length – 请求内容长度 (仅用于 POST)
user – 用户 (PHP_AUTH_USER) (or ‘-’ 如果没设置)
script – PHP脚本 (or ‘-’ if not set)
last request cpu – 最后一个请求CPU使用率。
last request memorythe – 上一个请求使用的内存


【参考引用】
[url]http://www.ttlsa.com/php/use-php-fpm-status-page-detail/[/url]
[url]https://rtcamp.com/tutorials/php/fpm-status-page/[/url]
非常感谢您的提问,我将为您详细描述 ansible-varnish-nginx-php-fpm-ftp-mysql 的部署流程。 前置条件: - 安装 Ansible 工具 - 所有主机都配置好 SSH 免密登录 - 所有主机都已安装 Python 2.x 或 Python 3.x 步骤: 1. 编写 Ansible 配置文件 创建一个名为 inventory 的文件,并在其中定义要部署的主机列表和相关变量: ``` [web] webserver ansible_host=192.168.1.10 ansible_user=<your_user> ansible_ssh_private_key_file=<your_ssh_key> dbserver ansible_host=192.168.1.11 ansible_user=<your_user> ansible_ssh_private_key_file=<your_ssh_key> [web:vars] nginx_version=1.14.1 php_version=7.2 mysql_version=5.7 ``` 2. 编写 Ansible Playbook 创建一个名为 playbook.yml 的文件,并编写 Ansible Playbook。以下是一个示例 Playbook,包含安装和配置 varnish、nginx、PHP-FPM、FTP 和 MySQL。 ``` - hosts: web become: true vars_files: - vars.yml tasks: # 安装 Varnish - name: Install Varnish yum: name: varnish state: present # 安装 Nginx - name: Install Nginx yum: name: nginx state: present notify: - Restart Nginx # 配置 Nginx - name: Configure Nginx template: src: templates/nginx.conf.j2 dest: /etc/nginx/nginx.conf notify: - Restart Nginx # 安装 PHP-FPM - name: Install PHP-FPM yum: name: php-fpm state: present notify: - Restart PHP-FPM # 配置 PHP-FPM - name: Configure PHP-FPM template: src: templates/php-fpm.conf.j2 dest: /etc/php-fpm.conf notify: - Restart PHP-FPM # 安装 FTP - name: Install FTP yum: name: vsftpd state: present notify: - Restart FTP # 配置 FTP - name: Configure FTP template: src: templates/vsftpd.conf.j2 dest: /etc/vsftpd/vsftpd.conf notify: - Restart FTP # 安装 MySQL - name: Install MySQL yum: name: mysql-community-server state: present notify: - Start MySQL # 配置 MySQL - name: Configure MySQL template: src: templates/my.cnf.j2 dest: /etc/my.cnf notify: - Start MySQL handlers: # 重启 Nginx - name: Restart Nginx systemd: name: nginx state: restarted # 重启 PHP-FPM - name: Restart PHP-FPM systemd: name: php-fpm state: restarted # 重启 FTP - name: Restart FTP systemd: name: vsftpd state: restarted # 启动 MySQL - name: Start MySQL systemd: name: mysqld state: started ``` 3. 准备模板文件 创建模板文件,用于生成配置文件。以下是模板文件示例代码: nginx.conf.j2 ``` user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; events { worker_connections 1024; use epoll; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.php index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } include /etc/nginx/conf.d/*.conf; } ``` php-fpm.conf.j2 ``` [global] pid = /var/run/php-fpm/php-fpm.pid error_log = /var/log/php-fpm/error.log emergency_restart_threshold = 5 emergency_restart_interval = 1m process_control_timeout = 10 daemonize = no [www] user = nginx group = nginx listen = 127.0.0.1:9000 listen.owner = nginx listen.group = nginx listen.mode = 0660 pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 pm.max_requests = 500 ``` vsftpd.conf.j2 ``` anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES chroot_local_user=YES allow_writeable_chroot=YES local_root=/var/www/html/ listen=YES listen_ipv6=NO pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES ``` my.cnf.j2 ``` [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql symbolic-links=0 skip-external-locking key_buffer_size = 16M max_allowed_packet = 256M table_open_cache = 16384 sort_buffer_size = 512K net_buffer_length = 16K myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size = 16M query_cache_limit = 1M log-bin=mysql-bin binlog_format=ROW server-id=1 innodb_buffer_pool_size = 256M innodb_log_file_size = 64M default-storage-engine=innodb character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci [client] socket=/var/lib/mysql/mysql.sock [mysql] socket=/var/lib/mysql/mysql.sock ``` 4. 运行 Ansible Playbook 运行以下命令来运行 Ansible Playbook: ``` $ ansible-playbook -i inventory playbook.yml ``` 此命令将在指定主机上按顺序执行 Playbook 中的每个任务,安装和配置所有必需的软件包和服务,最终实现 ansible-varnish-nginx-php-fpm-ftp-mysql 的部署。 感谢您提供的问题,希望可以帮到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值