php-fpm存在两种方式,一种是直接开启指定数量的php-fpm进程,不再增加或者减少;另一种则是开始的时候开启一定数量的php-fpm进程,当请求量变大的时候,动态的增加php-fpm进程数到上限,当空闲的时候自动释放空闲的进程数到一个下限。
这两种不同的执行方式,可以根据服务器的实际需求来进行调整。
这里先说一下涉及到这个的几个参数吧,他们分别是pm、pm.max_children、pm.start_servers、pm.min_spare_servers和pm.max_spare_servers。
pm表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。
下面4个参数的意思分别为:
pm.max_children:静态方式下开启的php-fpm进程数量,在动态方式下他限定php-fpm的最大进程数(这里要注意pm.max_spare_servers的值只能小于等于pm.max_children)
pm.start_servers:动态方式下的起始php-fpm进程数量。
pm.min_spare_servers:动态方式空闲状态下的最小php-fpm进程数量。
pm.max_spare_servers:动态方式空闲状态下的最大php-fpm进程数量。
如果dm设置为static,那么其实只有pm.max_children这个参数生效。系统会开启设置的数量个php-fpm进程。
如果dm设置为dynamic,4个参数都生效。系统会在php-fpm运行开始的时候启动pm.start_servers个php-fpm进程,然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数。
那么,对于我们的服务器,选择哪种执行方式比较好呢?事实上,跟Apache一样,我们运行的PHP程序在执行完成后,或多或少会有内存泄露的问题。这也是为什么开始的时候一个php-fpm进程只占用3M左右内存,运行一段时间后就会上升到20-30M的原因了。所以,动态方式因为会结束掉多余的进程,可以回收释放一些内存,所以推荐在内存较少的服务器或者VPS上使用。具体最大数量根据 内存/20M 得到。比如说512M的VPS,建议pm.max_spare_servers设置为20(512*0.8/20)。至于pm.min_spare_servers,则建议根据服务器的负载情况来设置,比较合适的值在5~10之间。
然后对于比较大内存的服务器来说,设置为静态的话会提高效率。因为频繁开关php-fpm进程也会有时滞,所以内存够大的情况下开静态效果会更好。数量也可以根据 内存/30M 得到。比如说2GB内存的服务器,可以设置为50;4GB内存可以设置为100等。
本博客建立在512M的VPS上,因此我设置的参数如下:
pm=dynamic
pm.max_children=20
pm.start_servers=5
pm.min_spare_servers=5
pm.max_spare_servers=20
这样就可以最大的节省内存并提高执行效率。
相关推荐
本文将详细介绍PHP-FPM的关键配置参数,并提供关于性能优化的说明。 首先,PHP-FPM配置文件php-fpm.conf中包含了多个重要的参数,它们对程序的运行有着直接的影响。以下是其中一些关键参数的详细解释和优化建议: ...
在本文中,我们将详细介绍如何在Ubuntu 12.04服务器上安装Nginx、PHP5(通过PHP-FPM)和MySQL,构建一个完整的Web服务器环境。这是一个适合初学者和有经验的系统管理员的指南,旨在提供详细的步骤来完成这个常见的...
在本文档中,我们将深入探讨如何在Ubuntu 12.04服务器上安装Nginx、PHP5(通过PHP-FPM)以及MySQL,这是一套常见的Web服务器环境配置,适用于托管动态网站和应用程序。 首先,我们需要确保系统是最新的。运行`apt-...
### PHP-FPM 配置详解 #### 一、概述 PHP-FPM (FastCGI Process Manager) 是一种用于管理 PHP 的 FastCGI 进程的工具。...掌握这些配置项的含义和使用方法,对于优化 PHP 应用程序的性能至关重要。
【标题】 Docker FPM Wrapper: Docker化PHP-FPM的优雅管理工具 【描述】 Docker FPM Wrapper 是一个专为在Docker容器中高效运行PHP-FPM应用设计的解决方案。它着重于日志记录、Prometheus监控以及在Kubernetes(K8s)...
打开浏览器,访问`http://your_server_ip/info.php`,如果能看到PHP信息页面,说明安装成功。 **七、后续优化** 根据实际需求,可能还需要安装其他扩展,如`gd`, `mbstring`, `curl`, `json`, `tokenizer`, `...
>`,然后通过浏览器访问,如果能看到PHP信息页面,说明PHP已成功安装并运行。 九、安全优化 在生产环境中,为了提高安全性,还需要配置PHP的限制,例如限制文件上传大小、禁用危险函数等,这些都可以在`/etc/...
PHP-FPM(FastCGI Process Manager)是PHP的一个重要组件,它优化了PHP与Web服务器的交互,提高了性能。t1lib则是一个用于处理TrueType字体的库,它可能为PHP提供处理图形和文字时对TrueType字体的支持。 描述中的...
总结,PHP 7.2.8在Linux环境中的安装和配置涉及到多个步骤,包括源码解压、编译环境准备、配置选项定制、编译安装、配置PHP-FPM、启动服务以及安全优化。了解这些步骤对于任何想要在Linux服务器上部署PHP应用程序的...
【标题】:“docker-laravel”项目是为Laravel 5应用程序构建的一个 Docker 化环境,它利用了 docker-compose 来管理Gulp、PHP-FPM、MySQL和nginx等服务。 【描述】:此项目的主要目标是简化Laravel 5开发过程中的...
访问这个文件,如果能看到PHP信息,说明安装成功。 ### 性能优化与安全注意事项 - 使用OPCache:这是一个内置的PHP加速器,可以显著提高代码执行速度。 - 定期更新:保持PHP到最新稳定版本,以获得安全更新和性能...
2. 配置PHP-FPM:确保`/etc/php/版本号/fpm/pool.d/www.conf`中的`listen`设置正确,通常为`/run/php/php版本号-fpm.sock`。 在CentOS/RHEL上: 1. 安装PHP:`sudo yum install php php-fpm ...
如果出现类似"PHP 7.0.4 (cli) (built:...)..."的信息,说明PHP已经成功安装。 八、集成到Web服务器 为了让PHP与Apache或Nginx等Web服务器协同工作,需要配置服务器的配置文件,添加PHP处理器模块。对于Apache,...
>`,通过浏览器访问,如果显示PHP信息,说明部署成功。 三、安全与优化 1. **权限设置**:合理设置PHP-FPM运行用户和组,避免权限过大造成安全风险。 2. **配置优化**:调整php.ini中的配置参数,如内存限制、执行...
标题 "nginx_php_mysql install" 指的是在服务器上安装并配置 Nginx、PHP-FPM(PHP FastCGI Process Manager)以及 MySQL 这三个关键组件的过程,它们是搭建一个LAMP(Linux、Apache、MySQL、PHP)或LNMP(Linux、...
在Linux环境下,源码包安装是开发者常用的方式,因为它允许用户自定义配置和优化软件以适应特定环境。对于PHP 5.5.14,以下是安装步骤: 1. **解压文件**: 首先,你需要使用`tar`命令来解压缩文件: ``` tar -...
访问`http://your_server_ip/info.php`,如果能看到PHP信息页面,说明PHP 5.6已经成功安装并运行。 九、安全优化 为了提高安全性,建议限制PHP的错误报告级别,禁止显示错误信息到浏览器,同时设置合适的文件上传...
>`,然后通过Web浏览器访问这个文件,如果显示PHP信息页面,说明安装成功。 10. **安全优化**:为了提高安全性,应限制非必要的PHP模块,设置适当的文件权限,并定期更新系统和软件,防止潜在的安全威胁。 以上...
访问这个文件(如`http://yourdomain.com/info.php`),如果看到PHP信息页面,说明安装成功。 10. **安全与维护**: 定期更新PHP到最新安全补丁,确保服务器安全。同时,监控PHP的性能,使用工具如Xdebug进行调试...