Настройка кэширования в APCu

Конфигурационный файл располагается чаще всего в /etc/php.d/apcu.ini. Пример конфигурационного файла для сервера с 8 ГБ оперативной памяти:

extension=apcu.so
apc.enable_cli = 1
apc.shm_segments = 1
apc.shm_size = 512M
apc.stat = 1
apc.ttl = 0
apc.user_ttl = 0
apc.max_file_size = 1M
apc.num_files_hint = 16384
apc.user_entries_hint = 16384
apc.file_update_protection=10

При использовании PHP 5.3, указывается extension=apc.so

FastCGI замечание: The popular APC opcode cache for PHP cannot share a cache between PHP FastCGI processes unless PHP manages the child processes. Thus, the effectiveness of the cache is limited with mod_fcgid; concurrent PHP requests will use different opcode caches.

Описание основных атрибутов конфигурации APCu

apc.shm_segments Количество выделяемых сегментов памяти. Многие BSD системы имеют низкие лимиты на выделяемый сегмент памяти. По умолчанию 1.
apc.shm_size Размер сегмента совместно используемой памяти, устанавливается в мегабайтах. Минимально мы рекомендуем устанавливать 128M, для сервера с 8Гб - 512M, с 16Гб - 1024M. В случае использования нескольких сегментов, размер памяти необходимо делить на количество сегментов.
apc.stat С помощью этой опции можно отключать и включать APC. Значение 1 - включено, 0 - выключено.
apc.ttl Время кэширования php-файлов. При установке в 0 позволяет очищать кэш целиком в случае заполнения выделенной памяти.
apc.user_ttl Время кэширования пользовательских данных. При установке в 0 позволяет очищать кэш целиком в случае заполнения выделенной памяти.
apc.max_file_size Максимальный размер кэшируемого файла.
apc.num_files_hint Используется APC для оптимизации организации хранения данных файлов в памяти. Рекомендуем устанавливать значение больше 10000.
apc.user_entries_hint Используется APC для оптимизации организации хранения пользовательских переменных в в памяти. Рекомендуем устанавливать значение больше 10000.
apc.file_update_protection Не кэшировать файлы, созданные менее указанных секунд назад. Позволяет избежать кэширования частично-записанного файла.

Ошибка Unable to allocate memory for pool

Ошибка include(): Unable to allocate memory for pool возникает при сильной фрагментации памяти, минимизировать фрагментацию памяти помогает установка в ноль значения опции apc.ttl и apc.user_ttl.

Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.