WordPress服务器不断耗尽内存并崩溃,我该如何确定和修复原因?
Posted
技术标签:
【中文标题】WordPress服务器不断耗尽内存并崩溃,我该如何确定和修复原因?【英文标题】:WordPress server keeps running out of memory and crashing, how can I determine and fix the cause? 【发布时间】:2016-04-09 04:39:30 【问题描述】:在上个月,我的服务器刚刚开始随机炸毁。我有一个完美的安装,完美运行了 9 个月,但在上个月,负载和内存使用量开始随机失控。
似乎是外部因素导致了这种情况发生,但我不知道它可能是什么。重新启动服务器将使其正常运行几分钟到 18-24 小时,但这大约是最大值。
内存使用量不断上升,直到 Apache 进程核心转储。负载螺旋式上升到 20+。
[Tue Jan 05 11:31:22.629436 2016] [core:notice] [pid 1246] AH00052: child pid 8127 exit signal Segmentation fault (11)
在此之前的 9 个月内,此服务器运行正常,负载 [顶部] 范围为 .01 - .20。
服务器运行数字海洋的一键式WordPress安装镜像,有1GB内存和1GB交换文件。
我的活跃插件列表如下:Blubrry PowerPress、CloudFlare、Disqus Comment System、Jetpack、 Login LockDown, Monarch Plugin (Share On Theme123.Net), Nofollow 链接、TinyMCE 高级、Yoast SEO
几个月来没有任何插件被更改过。
我的服务器只运行一个 WordPress 安装和一个站点。 WordPress 和插件总是更新到最新版本。网站没有大的改动。
在过去的每个 WordPress 安装中,我都遇到了 100% 的问题,这些网站通过对 /xmlrpc.php 的暴力破解尝试而崩溃,我不得不完全拒绝访问它,即使它搞砸了 jetpack,因为我没有能够获得订单允许,拒绝工作。它要么导致整个服务器上的所有 URL 出现 520 错误,要么在错误日志中报告“此处不允许订单”并且它不起作用。这是一个单独的问题,但如果有人能解释这个问题,我将非常感激。过去的经验表明,将 xmlrpc.php 向公众开放会导致 100% 的网站崩溃。
有人可以帮忙吗?我在这里变得非常绝望,这正在破坏我的网站。自 12 月初以来,它一直无法在线超过 24 小时。没有人有任何答案。
【问题讨论】:
您的网站是否包含大量大量图片? 嗨,Kirk,我开启了 cloudflare,就缓存而言,一切都达到了最大值。我会试试这个插件。 DP EN - 我的网站不是超级图像重,但无论如何 cloudflare 都会缓存它。我知道缓存运行良好,因为我在 cloudflare 统计数据中看到 cloudflare 节省了超过 50% 的总带宽 (51%) 和超过 50% 的请求 (61%) 谢谢。 我添加了查询监视器插件。到目前为止,它只检测到一个慢查询。我怀疑以后会有很多缓慢的查询,但我认为这是一种症状,而不是耗尽所有内存的原因。一旦它开始交换并消耗所有内存,一切都会变慢。我认为是 Apache 而不是 mysql 导致它崩溃和烧毁。我应该在这个插件中寻找什么特别的东西?谢谢。 到目前为止,它经常检测到这个查询:1 SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes' wp_load_alloptions() wp-includes/option.php:181 + Core 519 0.0287
很慢。大多数其他查询为 0.0001,偶尔为 0.0010 或 0.0012。
@KirkBeard 感谢您的意见。
【参考方案1】:
您的网站是否包含大量图片??
##EXCEED MEMORYT LIMIT
php_value upload_max_filesize 1000M
php_value post_max_size 3000M
php_value memory_limit 9999999999M
php_value max_execution_time 999
php_value max_input_time 999
尝试将上述代码添加到 wordpress 根目录下的 .htaccess 文件中。如果您的浏览器崩溃并出现内存转储错误,这应该会有所帮助。希望这会有所帮助。
【讨论】:
不是浏览器崩溃,而是apache崩溃了。这仍然相关吗?谢谢。【参考方案2】:如果您的 PHP 进程在您的服务器上使用高内存和 CPU,那么我建议您尝试使用带有 mpm 事件模块的 PHP-FPM。使用此设置,您将获得更好的性能。完成此设置后,您可以为您的 word press 网站安装一些缓存插件。
【讨论】:
我会试试的。我的网站已经使用 CloudFlare 进行了大量缓存,直到最近我发现这比使用缓存插件更有效,因为缓存插件非常难以配置并且经常干扰其他插件。【参考方案3】:根据我的经验,Jetpack 插件使用更多资源。您可以通过停用来尝试。
【讨论】:
好的,但它工作了 9 个月,没有一个问题。我在我设置过的每个站点上都使用过 Jetpack,没有任何问题(至少安装了 20 个其他 WordPress)。以上是关于WordPress服务器不断耗尽内存并崩溃,我该如何确定和修复原因?的主要内容,如果未能解决你的问题,请参考以下文章
生产Nginx现大量TIME-WAIT,连接耗尽,该如何处理?
iOS 14 后列表背景颜色更改并添加了填充,我该如何处理?
防止 uinavigationcontroller 设置中 popViewControllerAnimated 的错误访问崩溃