<rmcreative>

RSS

Unable to allocate memory for pool

14 сентября 2011

Буквально двадцать минут назад забился кэш APC на форуме yiiframework.ru. Расследование проблемы заняло некоторое время. Итак, что же делать при получении Unable to allocate memory for pool.

  • Сливаем архив с APC.
  • Берём оттуда apc.php и заливаем на сервер.
  • Открываем apc.php в браузере и смотрим, есть ли у нас свободная память.
  • Если нет, меняем в php.ini значение apc.shm_size.
  • Рестартим PHP.

Проблема может быть и другого рода, но чаще всего это именно забитый кэш.

Комментарии RSS

  1. №5344
    Vladimir
    Vladimir 14.09.2011, 19:48:54

    меняем в php.ini значение apc.shm_size.

    Как показывает практика, с этим нужно быть осторожнее. Есть такой баг (или особенность — трудно сказать), что при большом shm_size неконтролируемо вырастает RSS процесса (проверено на php/fcgi), после чего php либо съедает всю доступную память, либо начинает неконтролируемо падать.

  2. №5346
    Sam
    Sam 14.09.2011, 20:39:16

    Vladimir, если сильно-сильно задрать shm, то рост RSS будет, в общем-то, закономерен. При каких значениях начинались падения?

  3. №5347
    Vladimir
    Vladimir 14.09.2011, 21:06:38

    После 64M — не помню точного значения (возможно, 128). В нашем случае RSS сильно переваливал за стандартный размер плюс shm_size (раза в три-четыре, если не больше). В итоге мы просто отказались от APC.

  4. №5348
    Sam
    Sam 14.09.2011, 22:01:49

    Ясно. Я пока до 64М поднял. Надеюсь, выше не придётся.

  5. №5349
    unixnotes
    unixnotes 15.09.2011, 8:14:26

    Хз, у меня уже с полгода на нескольких сервера стабильно (тьфу-тьфу) работает с apc.shm_size=256 На mod_php

  6. №5350
    resurtm
    resurtm 15.09.2011, 11:46:53

    Аналогично. Примерно год сижу на 256M. И все стабильно.

    CentOS 5.*, CentALT.

  7. №5352
    Psih
    Psih 15.09.2011, 13:15:08

    Как по мне - XCache лучше, и в процессе использования ни разу не сталкивался с проблемами (хотя в баг трекере они конечно есть, но не много). А APC изначально не понравился тем, что в нём много чего напихано. Да и читал отзывы разработчиков о том, что он хреново написан и менять в нём что-то очень сложно, что меня, как программиста, совсем не порадовало :/

  8. №6040
    Станимслав
    Станимслав 12.03.2012, 17:29:15

    Можно вообще выключить (и рекомендуют везде куда ни кинь): php_flag apc.cache_by_default Off

  9. №8799
    Аскар
    Аскар 06.02.2014, 9:48:11

    Cached Files 169 ( 15.6 MBytes) apc.shm_size 32M

    Ошибка до сих пор выдаётся

    include(): Unable to allocate memory for pool.
    /var/www/vhosts/aruahoil.kz/site1/framework/YiiBase.php(403)
    403             include(YII_PATH.self::$_coreClasses[$className]);
    Stack Trace
    #0 /var/www/vhosts/aruahoil.kz/site1/framework/YiiBase.php(403): YiiBase::autoload()
    #1 unknown(0): YiiBase::autoload("CMap")
    

    Не подскажете в чём дело?

  10. №8800
    Vladimir
    Vladimir 06.02.2014, 9:52:29

    Аскар, а что с фрагментацией кэша? Возможно, что кэш сильно фрагментирован, из-за чего APC не может закешировать файл.

    Кстати, какая версия PHP и APC?

    Самое простое решение — увеличивать значение apc.shm_size. Либо переходить на XCache (или Zend OpCache + APCu, если PHP 5.5)

  11. №10078
    Андрей
    Андрей 02.12.2015, 13:12:06

    Товарищи! Нужен администратор веб-сервера на удаленку

  12. №10080
    Андрей
    Андрей 02.12.2015, 15:25:37

    пишите в скайп smart-mdx

  13. №10253
    World of Tanks
    World of Tanks 09.02.2016, 22:35:56

    Булка выдает ту же ерунду после перехода на APC У нас apc.shm_size=64M

  14. №10502
    Сайт
    Сайт 13.05.2016, 13:51:34

    apc.shm_size= 768M Это ж гораздо больше ваших 64М. Как так?

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.