php-fpm优化方法
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.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.max_children=20
pm.start_servers=5
pm.min_spare_servers=5
pm.max_spare_servers=20
可以最大的节省内存并提高执行效率。
https://www.zhihu.com/question/26845457
http://www.linuxidc.com/Linux/2014-12/110964.htm
相关推荐
【php-fpm.rpm包】是专门为Linux系统设计的一款软件包,它包含了PHP-FPM(FastCGI Process Manager)服务,是PHP的一个重要组件。PHP-FPM是PHP FastCGI的进程管理器,它允许Web服务器(如Apache或Nginx)通过FastCGI...
PHP-FPM,全称为“PHP FastCGI Process Manager”,是PHP的一个重要组件,专为管理和优化PHP应用程序的FastCGI进程而设计。在本篇中,我们将深入探讨PHP-FPM的含义、功能以及如何在Linux环境中进行安装和使用。 ...
### Nginx+php-fpm优化技巧总结 #### 一、引言 随着互联网应用的不断发展壮大,服务器的性能优化成为提升用户体验的关键因素之一。在众多高性能架构中,Nginx+php-fpm的组合因其高效稳定而备受青睐。本文将深入探讨...
本文将深入探讨PHP-FPM的运行机制以及如何使用PHP-FPM进程监控器来优化服务器性能。 首先,理解PHP-FPM的工作原理至关重要。PHP-FPM采用多进程模型,分为父进程和子进程两部分。父进程主要负责接收来自Web服务器的...
`php-fpm.conf`是PHP-FPM(FastCGI Process Manager)的主要配置...理解并合理配置这些参数对于优化PHP-FPM的性能、安全性和稳定性至关重要。在实际使用中,应根据服务器资源、应用需求以及安全策略进行相应的调整。
**PHP-FPM性能优化** PHP-FPM(FastCGI Process Manager)是PHP的一个重要组件,它作为PHP FastCGI的管理器,负责处理来自Web服务器(如Nginx)的PHP请求。在Nginx上运行PHP应用程序时,通常会将请求转发给PHP-FPM...
基于alpine的php-fpm nginx docker一键环境 可以手动替换所有版本 通过修改dockerfile,支持容器加载代码,或者挂载代码 也可以支持k8s做为基础环境容器,整体已经经过优化
【PHP-FPM调优:使用'pm ...综上所述,合理使用 'pm static' 能有效优化 PHP-FPM 性能,特别是在内存充足且需要稳定性能的环境中。不过,调优过程中应根据实际负载和资源状况灵活调整,确保服务器的高效稳定运行。
3. **配置**:PHP-FPM的配置文件通常位于`/etc/php/fpm/pool.d/`目录下,可以通过调整配置参数来优化性能,例如设置最大进程数、最小空闲进程数等。 **Zabbix** Zabbix是一款开源的企业级监控解决方案,用于监控...
在IT行业中,尤其是Web服务领域,Nginx与PHP-FPM的组合是常见的服务器架构,用于处理动态内容。本文主要探讨的是在Nginx+PHP-FPM...通过优化代码和合理配置PHP-FPM,可以有效防止内存占用过高,保证服务器的稳定运行。
- **优化的上传支持**:PHP-FPM优化了大文件上传和POST请求的处理,通过将请求体写入临时文件,然后仅通过文件名传递给FastCGI协议,减少了内存占用和处理时间。这项优化需要Web服务器(如Nginx)的支持。 总的来说...
高山PHP-FPM PHP-FPM(PHP 和 )具有在之上的基本扩展。 PHP 7.4 PHP 8.0 内置扩展 卷曲 ftp 哈希(mhash) libedit 钠 mbstring mysqlnd 的openssl 密码-argon2 pdo-sqlite 梨 sqlite3 zlib 其他扩展 ...
在配置LAMP+php-fpm环境时,还需要考虑一些优化措施,如调整php-fpm的配置文件(通常位于/etc/php-fpm.d/)以设置合适的进程池大小、最大连接数、超时时间等。同时,监控系统资源使用情况,确保Apache和php-fpm的...
在PHP 5.3.2之后的版本,旧的php-fpm控制命令(如start、restart、stop、reload)不再被支持,因此需要新的方法来管理和启动PHP-FPM服务。 以下是具体的操作步骤: 1. **配置php-fpm.conf**:首先,你需要编辑...
我按照《Nginx使用的php-fpm的两种进程管理方式及优化》这篇文章,配置 php-fpm 进程数如下: 重启 php-fpm 后,还是没有彻底解决问题,依旧会出现占用 99以上,不知道哪位朋友知道如何分析和解决呢?小弟求助了! ...
【Nginx + PHP-FPM + APC...总之,Nginx + PHP-FPM + APC的组合是优化PHP应用性能的一种理想方案,特别适合那些需要处理大量并发请求的网站。通过这种方式,你可以实现更高效、更节省资源的Web服务,从而提升用户体验。