增加 apc.shm_size 会导致 PHP 致命错误:内存不足

增加 apc.shm_size 会导致 PHP 致命错误:内存不足

我正在尝试为在专用服务器上运行的 magento 商店设置 APC,该服务器具有 12GB RAM,以 Litespeed 运行。

我正在使用他建议的设置Rackspace-Magento 白页

extension=apc.so
apc.shm_size=256M
apc.num_files_hint=10000
apc.user_entries_hint=10000
apc.max_file_size=5M

我得到:

Fatal error: Out of memory (allocated 61341696) (tried to allocate 82 bytes) in /home/bpadmin/public_html/lib/Zend/Db/Statement/Pdo.php on line 290

当我尝试加载顶级类别页面时。其他页面加载正常,但包含最多产品的类别都产生相同的错误。

但是,如果我将 apc.shm_size 减少到 128M,它就可以完美加载。

当我开始执行此操作时,PHP memory_limit 为 512M,但后来我将其提高到 1024M。但这并不能阻止错误。

我在网上看到有人建议禁用 suExec,所以我就这么做了。但错误仍然存​​在。

同样,有人建议增加 litespeed 软和硬内存限制,所以我将它们从 300/400 增加到 500/600,但这也没有帮助。

还有人知道其他可能导致这种情况的原因吗?

答案1

记忆问题通常由于以下两个原因之一而发生。

1. 循环中重复加载某些内容,而不清除前一次循环的内存

2.装载过大的东西

您可以尝试以下操作:

1.尝试通过重新启动 apache 服务来清除 apc 缓存,或者使用 apc.php 文件来清除 opcode 缓存 2.从 php.ini 增加内存限制

内存限制 = ...

3.使用phpinfo检查内存限制的值

php phpinfo();

答案2

默认检查 sysctl 中的 kernel.shmmax,shmmax 远低于 256MB,所以也许这就是它 oom'ing 的原因。

相关内容