type
status
date
slug
summary
tags
category
icon
标签
参考标签
😀
在腾讯云轻量应用服务器上使用WordPress时,遇到了内存占用过高的问题,导致WordPress经常无响应。经过优化php-fpm进程、删除无用主题和优化MySQL等步骤后,内存占用有所下降,但仍不理想。最终发现将php-fpm进程管理方式改为ondemand模式可以最省内存。调整相关参数后,内存占用稳定在400MB左右。
本来只是买了个2GB内存的服务器,看着内存一直占用非常高,始终高于85%,偶尔高于90%。导致我WordPress经常没响应。
我心想,难道是我买的服务器内存太少了?一咬牙,升级到4GB内存。
结果牙白咬了,升级完成之后,问题照旧。内存占用还是非常高。
发现我的问题是大量php-fpm进程,占了太多内存。所以在网上找到两个帖子,分别是Linux的php-fpm优化教程/php-fpm进程占用内存大和不释放内存问题 【服务器管理】Wordpress服务器内存占用太高(优化方案详解)。于是按照他们的方法进行优化。但是有几个地方跟他们的不一样,大概是因为服务器不同。我的服务器是腾讯云轻量应用服务器,CentOS 7, PHP 7.4
所以,第一种方法修改php-fpm文件,我的地址是/www/server/php/74/etc/php-fpm.conf
直接参考第一个帖子输入下面的参数
第二个办法是删除无用主题,这个好办。
第三个办法,优化MySQL,我的文件在/etc/my.cnf
[mysqld]部分加入下面这一行
然后重启MySQL
最后我重启了一下服务器,效果还不错,对比如下:
notion image
从原来的内存占用3.1GB,下降到了占用700MB。经过继续观察发现,内存占用还是会上升到2.4GB,比之前稍好一些,但仍然不理想。我规定了上限是20个fpm进程,后台就跑满了,每一个进程占3%的内存,正好是2.4GB。这东西真奇怪,跟寄生虫似的。
谢谢砸漏肥宅_Sean大佬的经验分享。
后续:
后面又去了解了一下这个问题。很明显是因为php-fpm进程的管理逻辑造成了它无故占用了很多物理内存。从《解决PHP-FPM进程导致的服务器内存占用》了解到:
该项共有三种设置方式 static、dynamic、ondemand
  • —种是pm =static,始终保持一个固定数量的子进程,这个数由pm.max_children定义,这种方式很不灵活,也通常不是默认的。
  • 另一种是pm = dynamic,他是这样的,启动时,会产生固定数量的子进程(由pm.start_servers控制)可以理解成最小子进程数,而最大子进程数则由pm.max_childr en去控制,这样的话,子进程数会在最大和最小数范围中变化,还没有完,闲置的子进程数还可以由另2个配置控制,分别是pm.min_spare_servers和pm.max_spare servers,也就是闲置的子进程也可以有最小和最大的数目,而如果闲置的子进程超出了pm.max_spare_servers,则会被杀掉。(注意,pm.max_spare_servers应小 Fpm.max_children)
  • 第三种就是pm = ondemand模式,这种模式和pm = dynamic相反,把内存放在第一位,他的工作模式很简单,每个闲置进程,在持续闲置了pm.process_idle_timeo ut秒后就会被杀掉,有了这个模式,到了服务器低峰期内存自然会降下来,如果服务器长时间没有请求,就只会有一个php-fpm主进程,当然弊端是,遇到高峰期或者如果pm.process_idle_timeout的值太短的话,无法避免服务器频繁创建进程的问题,因此pm =dynamic和pm = ondemand谁更适合视实际情况而定。
那这么来看的话,把pm 参数改成ondemand就是最省内存的模式了。
参数改成
重启服务器。效果非常好,内存占用稳定在400MB左右。齐活儿了。
notion image
如何缓解焦虑WordPress插件报错:cURL error 77
Loading...
TZ
TZ
阅尽千帆终执手,此心安处是吾乡
最新发布
振臂高呼GPT必应
2025-2-3
将剑桥英英词典加入Alfred快捷搜索
2025-2-3
【转载】美国霸权的衰落
2025-2-2
将Perplexity加入Alfred快捷搜索
2025-2-1
五行旺衰
2025-1-30
正视中美差距
2025-1-30
2017-2025TZ.

阅千帆 | 阅尽千帆终执手,此心安处是吾乡

Powered byNotionNext 4.8.3.