Настройка кэширования в 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
Описание основных атрибутов конфигурации 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.