我正在尝试为在专用服务器上运行的 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 的原因。