Home > php > Устанавливаем акселлератор APC на CentOS+Apache

Устанавливаем акселлератор APC на CentOS+Apache

August 3rd, 2011

Если у вас нагруженное веб-приложение и тесты показывают, что одно из узких мест это исполнение php-кода, то имеет смысл установить PHP-акселлератор. Один из лучших это APC от разработчиков самого PHP. Принцип его работы такой: он держит скомпилированный код php-файлов в памяти и при повторном обращении быстро его отдает.
Устанавливаем его из репозитория Remi:

yum --enablerepo=remi install php-pecl-apc

Теперь смотрим конфиг /etc/php.d/apc.ini, самые важные параметры:
# Включаем кэширование
apc.enabled=1
# количество блоков с кэшем в памяти
apc.shm_segments=1
# размер каждого блока
apc.shm_size=256M
# время устаревания кэшированных файлов
apc.ttl=3600
apc.max_file_size=1M
# если выключить, apc не будет проверять не изменился ли файл при обращении к нему.
apc.stat=1

Для каждого сервера надо подбирать свои параметры размера блока и срока устаревания кэша. Потому как иногда при заполнении памяти APC может падать с ошибкой “unable to allocate memory for pool” подробнее читать тут.
Для мониторинга состояния кэша APC удобно использовать прилагаемую к дистрибутиву утилиту apc.php. Просто скачиваете дистр и кладете файлик в любой виртуалхост.

php ,

  1. August 3rd, 2011 at 18:21 | #1

    И в очередной раз спасибо. Настраиваю свои вдсы по твоим мануалам. 🙂

  2. May 11th, 2012 at 23:14 | #2

    Удобная, конечно, штука — сам использовал на тяжёлых проектах, да только всё равно костыль. То ли дело fastcgi и иже с ним – загрузил в память, оно там и сидит.

  3. Nep
    November 18th, 2012 at 02:25 | #3

    Сделал по на писаному, всё прошло удачно, установилось, но в итоге – мускул “пал”… Мертвее мертвого, пока не знаю как поднять.

    Starting mysqld: [FAILED]

  4. Nep
    November 18th, 2012 at 04:08 | #4

    В общем, ошибка из-за того, что обновилось “всё” (потянулись в виде зависимостей) из этого репозитория Реми.
    Мускул запустился после того, как закоментил сточку – skip-locking в конфиге, файл my.cnf

    В общем, может кому поможет…

  1. No trackbacks yet.