Увеличение apc.shm_size приводит к фатальной ошибке PHP: недостаточно памяти
Я пытаюсь настроить APC для моего магазина magento, работающего на выделенном сервере с оперативной памятью 12 ГБ, работающей в режиме низкой скорости.
Я использую предложенные им настройки на Rackspace-Magento Whitepage
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, и поэтому у меня есть. Но ошибка сохраняется.
Точно так же было предложено увеличить пределы мягкой и жесткой памяти при малой скорости, поэтому я увеличил их с 300/400 до 500/600, но это тоже не помогло.
Кто-нибудь знает что-нибудь еще, что может быть причиной этого?
2 ответа
Проблемы с памятью обычно происходят по одной из двух причин.
1. Повторная загрузка чего-либо в цикле без очистки памяти из предыдущего цикла
2. Загрузка чего-то слишком большого
Вы можете попробовать следующее:
1. Попробуйте очистить кэш apc, перезапустив службу apache, или используйте файл apc.php, чтобы очистить кэш кода операции 2. Увеличьте лимит памяти в php.ini
memory_limit =...
3. Проверьте значение ограничения памяти с помощью phpinfo.
php phpinfo();
Проверьте файл kernel.shmmax в sysctl по умолчанию, shmmax намного меньше 256 МБ, так что, возможно, именно поэтому он работает.