设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
快捷导航
发布信息
搜索
搜索
首页
优惠促销
云服务器
独立服务器
站群服务器
母鸡服务器
服务器托管
全球云服务器
技术文档
联系
每日签到
本版
文章
帖子
用户
主机测评网
»
论坛
›
技术文档
›
其他教程
›
防止PHP-FPM在Linux服务器中占用过多内存? ...
返回列表
发新帖
防止PHP-FPM在Linux服务器中占用过多内存?
[复制链接]
|
主动推送
26
|
0
|
2024-9-11 15:03:49
|
显示全部楼层
|
阅读模式
如果你已经部署了一个LEMP(Linux、NGINX、MySQL/MariaDB和PHP)堆栈,那么你可能在NGINX中使用FastCGI代理(作为HTTP服务器)来处理PHP。PHP-FPM(FastCGI Process Manager的缩写)是一个被广泛使用的高性能的PHP FastCGI替代实现。
以下是在Linux服务器中设置LEMP Stack的有用指南。
最近,我们公司的一台LEMP网站服务器上的所有PHP网站都变得很慢,并且最终在登录服务器时停止响应,我们发现系统内存不足。PHP-FPM消耗了大部分的RAM,如下截图所示(glances - 系统监控工具)。
在这篇文章中,我们将展示如何防止PHP-FPM在Linux中消耗过多或全部系统内存(RAM)。在本指南的最后,你将学会如何将PHP-FPM的内存消耗减少50%或更多。
减少PHP-FPM的内存使用
在互联网上做了一些研究后,我们发现需要重新配置PHP-FPM进程管理器和它的某些方面,以减少PHP-FPM在池配置文件中的内存消耗。
默认的池是www,其配置文件位于/etc/php-fpm.d/www.conf(在CentOS/RHEL/Fedora上)或/etc/php/7.4/fpm/pool.d/www.conf(在Ubuntu/Debian/Mint上)。
$ sudo vim /etc/php-fpm.d/www.conf [在CentOS/RHEL/Fedora上] 。
$ sudo vim /etc/php/7.4/fpm/pool.d/www.conf [在Ubuntu/Debian/Mint上] 。
找到以下指令,并根据你的用例设置它们的值。对于被注释出来的指令,你需要取消注释。
pm = ondemand
pm.max_children = 80
pm.process_idle_timeout = 10s
pm.max_requests = 200
我们来简单解释一下上述指令及其值。pm指令决定了进程管理器如何控制子进程的数量。默认的方法是动态的,也就是说子进程(子进程)的数量是根据其他一些指令动态设置的,包括pm.max_children,它定义了同一时间可以存活的子进程的最大数量。
理想的进程管理器是按需其中在启动时没有创建子进程,即在启动时不创建子进程,而是按需生成。仅当新请求将基于pm.max_children和pm.process_idle_timeout连接时定义了子进程,子进程定义了秒数,在此秒数之后,空闲进程将被杀死。
最后,我们需要设置pm.max_requests参数,它定义了每个子进程在重新孵化之前应该执行的请求数。请注意,此参数也可以用作第三方库中内存泄漏的解决方法。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
米老鼠和蓝精鼠v
120
主题
0
回帖
10
积分
新手上路
新手上路, 积分 10, 距离下一级还需 40 积分
新手上路, 积分 10, 距离下一级还需 40 积分
积分
10
加好友
发消息
回复楼主
返回列表
网络技术教程
软件使用教程
Windows教程
Centos教程
Ubuntu教程
Linux其他教程
综合教程
其他教程
其他文档
服务器商家推荐
华夏互联
蓝速云
米图云
全球云
文章
1
苹果电脑MAC系统登录Windows远程桌面
2
Debian拓展硬盘工具。cloud-utils-growpart、xfsprogs
3
安卓Android手机怎么使用V2rayNG?
4
WINDOWS系统电脑怎么使用WINXRAY?
5
notepad++.8.5.7编辑器,代码编辑器
6
DirectX修复工具增强版_V4.3.0.40864版本DLL修复工具C++安装
7
Visual C++运行库合集包完整版VisualCppRedist_AIO_x86_x64
8
ChromeSetup谷歌浏览器一键安装