解决 WordPress 占用内存不断上升的问题

安装好 WordPress后,在浏览器中操作一段时间后,便无法再使用 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实际上更为妥当,因为这样不需要进行额外的进程数目控制,会提高效率。对于小内存的服务器,动态方式会结束掉多余的进程,可以回收释放一些内存。

我在这选择动态模式,调整后的配置如下:

pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 10

pm.max_requests = 300

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

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WordPress 结合 BuddyPress 的环境中,遇到注册页面(通常指用户注册或登录页面)404问题可能是由以下几个原因引起的: 1. **URL结构错误**:确保 WordPress 主题中的注册 URL 指向了正确的 BuddyPress 插件文件。通常,这可能是 `bp-login.php` 或者自定义的登录模板。 2. **插件冲突**:有些插件可能影响到 BuddyPress 的功能,检查是否有插件与 BuddyPress 或默认的 WordPress 登录功能不兼容。 3. **未激活插件或主题**:BuddyPress 需要与合适的 WordPress 主题和插件一起工作,确保它们都已正确激活。 4. **BuddyPress 设置**:在 wp-admin 中,前往 Users -> Settings -> Registration 页面,确认是否正确配置了用户注册设置,包括重定向和默认页面。 5. **代码问题**:如果使用了自定义代码或主题模板,可能存在误删、路径错误或代码冲突导致的404。 6. **服务器配置**:有时,服务器防火墙或.htaccess 文件设置可能阻止了对注册页面的访问,检查这些设置。 为了解决这个问题,你可以尝试以下步骤: 1. **检查URL**:确保 URL 没有错别字,使用浏览器开发者工具检查请求路径。 2. **更新插件和主题**:确保所有插件和主题都是最新版本。 3. **禁用/启用插件**:临时禁用除BuddyPress 和必要主题外的所有插件,看问题是否依然存在。 4. **复原设置**:如果使用过自定义配置,尝试还原到默认设置。 5. **查看日志**:查阅网站服务器日志,寻找关于404的详细信息。 6. **寻求专业帮助**:如果以上步骤都无法解决问题,可能需要联系开发者或寻求技术支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值