Увеличение 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 МБ, так что, возможно, именно поэтому он работает.

Другие вопросы по тегам