php-fpm 配置进程池
什么是 php-fpm :php 是作为一个独立服务存在的,这个服务叫做 php-fpm
什么是 php-fpm pool :也就是 php-fpm 的进程池,这个进程池中运行了多个子进程,用来并发处理所有连接的动态请求
为什么要配置多个 pool :Nginx 接收到 php 动态请求会传给 php-fpm 处理,php-fpm 调用 pool 中的子进程来处理动态请求,如果这个 pool 资源耗尽,会导致其他站点无法访问资源,报 502 错误,因此有必要设置多个 php-fpm pool
默认只配置了一个 php-fpm pool :
[root@localhost ~]$ cat /usr/local/php/etc/php-fpm.conf [global] # 全局配置
pid = /usr/local/php/var/run/php-fpm.pid # php-fpm pid 文件
error_log = /usr/local/php/var/log/php-fpm.log # php-fpm 错误日志路径 [www] # 进程池名称
listen = /tmp/php-fcgi.sock # The address on which to accept FastCGI requests
listen.mode = 666 # Set permissions for unix socket, read/write permissions must be set in order to allow connections from a web server
user = php # Set the user who can accept FastCGI
group = php # Set the group who can accept FastCGI
pm = dynamic # 设置进程池中子进程的数目为动态的,它的数目基于下面的指令的值,关于 pm 的设置可以参考:https://gist.github.com/sotarok/2767859
pm.max_children = 50 # 同一时刻能够存在的最大子进程的数量
pm.start_servers = 20 # 在启动 php-fpm 时,要启动的子进程数量
pm.min_spare_servers = 5 # 处于空闲状态的最小子进程数量
pm.max_spare_servers = 35 # 处于空闲状态的最大子进程数量
pm.max_requests = 500 # 每个子进程最多能处理多少个请求,达到数量后就自动退出进程池
rlimit_files = 1024 # 限制打开的文件描述符数量,这个一般是通过 ulimit 设置
配置多个 php-fpm pool :
[root@localhost ~]$ cat /usr/local/php/etc/php-fpm.conf [global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log [www]
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php
group = php
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024 [www2]
listen = /tmp/php-fcgi2.sock
listen.mode = 666
user = php
group = php
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
[root@localhost ~]$ /usr/local/php/sbin/php-fpm -t
[root@localhost ~]$ /etc/init.d/php-fpm reload
[root@localhost ~]$ ps aux | grep php-fpm
Nginx 如何使用不同的 php-fpm pool :
[root@localhost ~]$ cat /usr/local/nginx/conf/vhost/test.com.conf
server {
listen 80;
server_name www.test.com;
index index.html index.html index.php;
root /data/www; location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock; # 在这里指定使用哪个进程池
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
}
}
php-fpm 配置进程池的更多相关文章
- PHP-FPM进程池探秘
PHP 支持多进程而不支持多线程:PHP-FPM 在进程池中运行多个子进程并发处理所有连接请求.通过 ps 查看PHP-FPM进程池(pm.start_servers = 2)状态如下: root@d ...
- fpm 配置详解
约定几个目录 /usr/local/php/sbin/php-fpm /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php.ini 一,php- ...
- 64位进程池HashCode兼容处理
背景 net旧项目使用32位生成的HashCode,存储到数据库中.迁移到64位上,就需要对HashCode做兼容处理. 解决方案 1:进程池配置支持32位程序. 2:对Hashcode做兼容处理,[ ...
- python爬虫之线程池和进程池
一.需求 最近准备爬取某电商网站的数据,先不考虑代理.分布式,先说效率问题(当然你要是请求的太快就会被封掉,亲测,400个请求过去,服务器直接拒绝连接,心碎),步入正题.一般情况下小白的我们第一个想到 ...
- {Python之进程} 背景知识 什么是进程 进程调度 并发与并行 同步\异步\阻塞\非阻塞 进程的创建与结束 multiprocess模块 进程池和mutiprocess.Poll
Python之进程 进程 本节目录 一 背景知识 二 什么是进程 三 进程调度 四 并发与并行 五 同步\异步\阻塞\非阻塞 六 进程的创建与结束 七 multiprocess模块 八 进程池和mut ...
- PHP关于进程池的优化
本文打算从另一个角度来讨论问题,教大家如何配置高效的环境,如此同样能够达到优化的目的. pool 一个让人沮丧的消息是绝大多数 PHP 程序员都忽视了池的价值.这里所说的池可不是指数据库连接池之类的东 ...
- IIS进程池异常崩溃,导致网站 service unavailable,原因排查与记录。
昨晚十点钟的样子,网站崩溃,开始 service unavailable,最近开始业务高峰,心里一惊,麻痹肯定进程池又异常崩溃了.又碰到什么问题?上次是因为一个异步线程的问题,导致了进程池直接崩溃,后 ...
- 进程池和线程池、协程、TCP单线程实现并发
一.进程池和线程池 当被操作对象数目不大时,我们可以手动创建几个进程和线程,十几个几十个还好,但是如果有上百个上千个.手动操作麻烦而且电脑硬件跟不上,可以会崩溃,此时进程池.线程池的功效就能发挥了.我 ...
- 进程池与线程池、协程、协程实现TCP服务端并发、IO模型
进程池与线程池.协程.协程实现TCP服务端并发.IO模型 一.进程池与线程池 1.线程池 ''' 开进程开线程都需要消耗资源,只不过两者比较的情况下线程消耗的资源比较少 在计算机能够承受范围内最大限度 ...
随机推荐
- 关于css定位
关于定位要弄清一个概念,那就是"文档流" 什到是文档流 说得简单一点 就是 自上而下 从左到右 生成顺序 关于html元素又分为两种 块状元素 内联元素 块状元素:单独占一行 内联 ...
- 【转】]Android实现开机自动运行程序
有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service.怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以“Don't call me, I'll call y ...
- Android wpa_supplicant 启动过程
记录wpa_supplicant启动过程 ini脚本: service wpa_supplicant /vendor/bin/hw/wpa_supplicant \ -ip2p0 -Dnl80211 ...
- Java与编码问题串讲之二–如何理解java采用Unicode编码
Java开发者必须牢记:在Java中字符仅以一种形式存在,那就是Unicode(不选择任何特定的编码,直接使用他们在字符集中的编号,这是统一的唯一方法).由于java采用unicode编码,char ...
- 创建自己的PKI公/私密钥对和公钥证书
1. 创建certificate request configuration file cert_req.conf******************************************* ...
- MVC4小细节
一: @model 指令 或者也叫 @model关键字 注释:@model指令以提供一个更干净简洁的方式来指明你想要在视图文件中引用强类型模型类 作用:让视图文件(cshtml)更易读易写;VS ...
- QComboBox:类似于的百度的搜索提示
参考: http://blog.csdn.net/lingchen214/article/details/17960789 http://blog.sina.com.cn/s/blog_a6fb6cc ...
- Invalid input for operation: physical_network 'physnet1' unknown for flat provider network.
在devstack中 按照这个教程给bare metal创建flat network,一切都配置好之后, 执行net-create时遇到错误: Invalid input for operation ...
- CentOS 7系统查看系统版本和机器位数
前言 由于不经常使用linux,每当使用的时候就是安装软件,安装软件的时候就要选择安装包平台,是32位的还是64位的.这时候突然发现不知道怎么查,于是百度.虽然轻而易举百度出来,但仍旧没有自己的笔记看 ...
- 空基类优化—— EBCO—— empty base class optimization
完全参考自:<C++ Templates The Complete Guide>e_CN,p_281 16.2 空基类优化 最近周围有点吵,论文没看进去,随便翻了本书…… 下文没有多大意义 ...