1. 江湖人士首页
  2. IT江湖
  3. 建站

宝塔后台调整PHP性能参数,解决WordPress 占用内存不断上升的问题

昨天移机安装好 WordPress后,在浏览器中可以打开江湖人士网站就没有管它了,谁知今天早上访问量来了,结果导致数据库崩溃,然后手动在宝塔重启mysql数据库,总是坚持不了一会儿又自动挂掉了,打开网页时会得到这个提示:【Error establishing a database connection】,宝塔后台会看到数据库已经处于挂掉的状态:

宝塔后台调整PHP性能参数,解决WordPress 占用内存不断上升的问题
数据库挂掉
宝塔后台调整PHP性能参数,解决WordPress 占用内存不断上升的问题
宝塔面板

并出现了错误提示信息。在服务器后台开启 WordPress 的调试模式后,刷新浏览器,得到了更详细的错误信息,分析后得知是无法连接数据库的问题。在服务器中一看,MYSQL 数据库不知什么时候挂掉了。查看系统内存使用情况,发现总共 1G 的内存,现在使用了九百多兆。在一看系统并没有交换分区。原因一下就很清楚了,是系统内存不足导致 MYSQL 崩溃。为系统添加了 1G 的交换文件作为虚拟内存后,数据库是不崩溃了,但 WordPress 使用一段时间后反应就相当慢,并且服务器的 SSH 连接也几乎不能使用。综合前面的情况可知,现在的问题是 WordPress 使用过程中占满了系统内存,系统开始使用交换文件,而交换文件性能不足导致。

在控制台重启服务器后,继续在浏览器中使用 WordPress,并且在后台实时监控系统内存的使用情况。发现进行更换主题,安装插件等一些操作时,系统内存使用量会大量增长,并且很快会超出物理内存大小,造成访问缓慢的问题。多方查找资料后,发现是 php-fpm 的问题。

php-fpm 的 FastCGI 进程一旦加载就不会释放,当其工作完成后,并不会释放给系统内存,而是休眠于 FastCGI 系统池中,等待下一次被唤醒。就造成了内存不断上升的问题。我一直用的是 php-fpm 默认配置,这个配置对于我来说可能有点不合适,需要修改配置文件。

php-fpm 的相关参数

  • pm:表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态),默认为dynamic。
  • pm.max_children:静态方式下开启的php-fpm进程数量。
  • pm.start_servers:动态方式下的起始php-fpm进程数量。
  • pm.min_spare_servers:动态方式下的最小php-fpm进程数量。
  • pm.max_spare_servers:动态方式下的最大php-fpm进程数量。

区别

如果pm设置为 static,那么其实只有 pm.max_children 这个参数生效。系统会开启设置数量的 php-fpm 进程。

如果pm设置为 dynamic,那么 pm.max_children 参数失效,后面 3 个参数生效。系统会在 php-fpm 运行开始的时候启动 pm.start_servers 个 php-fpm 进程,然后根据系统的需求动态在 pm.min_spare_servers 和 pm.max_spare_servers 之间调整 php-fpm 进程数。

php-fpm 参数调整

对于内存大的服务器(8G)以上,指定静态的max_children实际上更为妥当,因为这样不需要进行额外的进程数目控制,会提高效率。对于小内存的服务器,动态方式会结束掉多余的进程,可以回收释放一些内存。

直接在宝塔后台调整即可,如下图所示:

宝塔后台调整PHP性能参数,解决WordPress 占用内存不断上升的问题
宝塔后台调整PHP性能

然后重启 php-fpm,系统内存使用在二百多兆。操作 WordPress 一段时间后,系统内存使用量不断增长,最终稳定在四百多兆。问题得以解决。

原创文章,作者:江小编,如若转载,请注明出处:https://jhrs.com/2019/31375.html

扫码关注【江湖人士】公众号,您会获得关于国外被动收入的最新资讯

WA付费会员QQ群:387027533,加这个群需要回答您的WA会员名,待核实后予以通过

普通QQ交流群:178758794,可分享交流建站的各类经验和知识

发表评论

电子邮件地址不会被公开。 必填项已用*标注

5 × 5 =