PHP'内存不足'错误是由MySQL服务器限制引起的?

时间:2017-10-13 09:13:13

标签: php mysql wordpress amazon-web-services memory

我正在使用AWS托管我们的一些WP(WordPress)实例,并且由于其中一个用于本地化的插件(apache日志指向插件),一个此类WP实例经常崩溃。该插件以适度的内存消耗而闻名,他们在论坛中提供的唯一解决方案是提高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内存消耗和管理是如何发生的,但我想知道的是&#34;内存不足&#34;实际上可能是由MySQL服务器限制引起的。我正在使用AWS RDS实例来托管数据库。可能是数据库服务器规范不足以造成瓶颈并导致PHP内存不足问题,因此我在PHP内存大小上所做的更改并不重要,因为问题出在数据库服务器端?< / p>

1 个答案:

答案 0 :(得分:1)

“我确实知道PHP内存消耗和管理是如何发生的,但我想知道”内存不足“是否真的可能是由MySQL服务器限制造成的。我正在使用AWS RDS实例来托管数据库。“

一般情况下,如果您在RDS上弹出内存,那么您可以在AWS控制台的RDS监控中清楚地看到这一点。检查你还剩下什么。

接下来的步骤是将一些监控放入托管WordPress的框中。

假设您完全可以访问

等框工具

https://www.newrelic.com

https://docs.newrelic.com/docs/agents/php-agent/frameworks-libraries/wordpress-specific-functionality

https://www.datadog.com

仅举两个流行版本的服务器监控软件。它们应该帮助您识别消耗盒子内存的过程和时间。这应该可以帮助您更深入地识别您遇到的问题,并清楚地指出导致内存泄漏的原因或占用内存上的所有内存。

hths,

詹姆斯