php-fpm 根据服务器内存 进行进程数设置
2021/10/26 7:11:59
本文主要是介绍php-fpm 根据服务器内存 进行进程数设置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
以下为官方文档内容:
pm string 设置进程管理器如何管理子进程。可用值:static,ondemand,dynamic。必须设置。 static - 子进程的数量是固定的(pm.max_children)。 ondemand - 进程在有需求时才产生(当请求时才启动。与 dynamic 相反,在服务启动时 pm.start_servers 就启动了。 dynamic - 子进程的数量在下面配置的基础上动态设置:pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers。 pm.max_children int pm 设置为 static 时表示创建的子进程的数量,pm 设置为 dynamic 时表示最大可创建的子进程的数量。必须设置。 该选项设置可以同时提供服务的请求数限制。类似 Apache 的 mpm_prefork 中 MaxClients 的设置和 普通PHP FastCGI中的 PHP_FCGI_CHILDREN 环境变量。 pm.start_servers in 设置启动时创建的子进程数目。仅在 pm 设置为 dynamic 时使用。默认值:min_spare_servers + (max_spare_servers - min_spare_servers) / 2。 pm.min_spare_servers int 设置空闲服务进程的最低数目。仅在 pm 设置为 dynamic 时使用。必须设置。 pm.max_spare_servers int 设置空闲服务进程的最大数目。仅在 pm 设置为 dynamic 时使用。必须设置。 pm.process_idle_timeout mixed 秒数,多久之后结束空闲进程。 仅当设置 pm 为 ondemand。 可用单位:s(秒),m(分),h(小时)或者 d(天)。默认单位:10s。 pm.max_requests int 设置每个子进程重生之前服务的请求数。对于可能存在内存泄漏的第三方模块来说是非常有用的。如果设置为 '0' 则一直接受请求,等同于 PHP_FCGI_MAX_REQUESTS 环境变量。默认值:0
php-fpm
是一个多进程单线程的模型
每个fpm平均大概占用内存20到30mb 那么机器支持最高的fpm数量公式如下:fpm数量 = 机器内存 * 1024M * 0.8 / 30 (20)
乘以0.8 是为服务器留出一点内存,处理其他业务
例如: 一个4G内存服务器
4 * 1024 * 0.8 / 30 约等于 109 个 FPM 进程数
那么如果 pm = static 则 pm.max_children = 109 静态,始终保持一个固定数量的子进程 pm = ondemand 进程在有需求时才产生,在持续闲置了pm.process_idle_timeout秒后就会被杀掉, 弊端是,遇到高峰期或者如果pm.process_idle_timeout的值太短的话,无法避免服务器频繁创建进程的问题 pm = dynamic pm.max_children = 109 pm.start_servers = 55 (默认值:min_spare_servers + (max_spare_servers - min_spare_servers) / 2 ) 启动时,会产生固定数量的子进程(由pm.start_servers控制)可以理解成最小子进程数,而最大子进程数则由pm.max_children去控制 pm.min_spare_servers = 10 设置空闲服务进程的最低数目 pm.max_spare_servers = 100 设置空闲服务进程的最大数目
心情不错~~~
这篇关于php-fpm 根据服务器内存 进行进程数设置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享