【发布时间】:2018-03-25 09:11:08
【问题描述】:
我正在使用 AWS 托管我们的一些 WP (WordPress) 实例,其中一个这样的 WP 实例由于用于本地化的插件之一而经常崩溃(apache 日志指向该插件)。该插件以适度的内存消耗而闻名,他们在论坛中提供的唯一解决方案是提高 PHP 内存限制。我为每个 WP 实例分配了 PHP 内存限制,并将有问题的 WP 实例的内存限制从 256MB 增加到 1024MB。但问题仍然存在,似乎内存增加没有任何区别。我继续收到以下错误,
[Wed Oct 11 18:35:23.613853 2017] [proxy_fcgi:error] [pid 32458:tid 140165586614016] [client 157.55.39.157:17401] AH01071: Got error 'PHP message: PHP Fatal error: Out of memory (allocated 20971520)
(tried to allocate 589824 bytes) in /htdocs/wp-content/plugins/wpml-string-translation/classes/filters/db-cache/class-wpml-st-db-translation-retrieve.php on line 186\n'
[Wed Oct 11 18:37:32.626994 2017] [proxy_fcgi:error] [pid 1040:tid 140165435545344] [client 157.55.39.157:12926] AH01071: Got error 'PHP message: PHP Fatal error: Out of memory (allocated 46137344) (
tried to allocate 8192 bytes) in /htdocs/wp-includes/wp-db.php on line 1851\nPHP message: PHP Fatal error: Out of memory (allocated 46137344) (tried to allocate 36864 bytes) in /htdocs/wp-includes/functions.php on line 3721\n'
现在,在上面的日志中有趣的是,第一个条目总是与有问题的插件(WPML)相关,而下一个条目指向 wp-db.php 文件。
我确实知道 PHP 内存消耗和管理是如何发生的,但我想知道“内存不足”是否真的可能是由 MySQL 服务器限制引起的。我正在使用 AWS RDS 实例来托管数据库。可能是数据库服务器规范不足以造成瓶颈并导致 PHP 内存不足问题,因此我对 PHP 内存大小所做的更改并不重要,因为问题出在数据库服务器端?
【问题讨论】:
-
没有。显然是一些 WordPress 错误。
-
是的,也许是您在 Wordpress 中“杀死”您的记忆的功能之一(可能是 CRON ?)。尝试调试您的 Wordpress
-
@Paul,当您说“是”时,您是否建议我查看我的 MySQL 服务器?感谢有关 WP CRON 的提示,我确实在 apache 日志中看到了很多与 WP CRON 相关的条目。我现在按照一种方法禁用 WP CRON 并使用 crontab 运行它。
-
很适合 crontab。好多了。关于我的“是的”,实际上,您必须找到一种方法来分析数据库的使用情况。关于 NewRelic 的答案是一个非常有效的解决方案(但不是免费的:))。也许您的托管经理监控您的数据库。尝试与他们联系。
标签: php mysql wordpress amazon-web-services memory