Назад | Перейти на главную страницу

Увеличение apc.shm_size вызывает неустранимую ошибку PHP: недостаточно памяти

Я пытаюсь настроить APC для своего магазина Magento, работающего на выделенном сервере с 12 ГБ ОЗУ, работающим под управлением 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 был 512 МБ, но с тех пор я увеличил его до 1024 МБ. Но это не останавливает ошибку.

Я видел в сети предложения по отключению suExec, и я это сделал. Но ошибка сохраняется.

Точно так же было предложено увеличить лимиты мягкой и жесткой памяти litespeed, поэтому я увеличил их с 300/400 до 500/600, но это тоже не помогло.

Кто-нибудь знает что-нибудь еще, что могло вызвать это?

Проблемы с памятью обычно возникают по одной из двух причин.

1. Повторная загрузка чего-либо в цикле без очистки памяти из предыдущего цикла

2. загрузка чего-то слишком большого

Вы можете попробовать следующее:

1. Попробуйте очистить кеш apc, перезапустив службу apache, или используйте файл apc.php для очистки кеша кода операции 2. Увеличьте ограничение памяти из php.ini

memory_limit = ...

3.Проверьте значение лимита памяти с помощью phpinfo

php phpinfo ();

проверьте kernel.shmmax в sysctl по умолчанию, shmmax намного меньше 256 МБ, так что, может быть, поэтому он идет.