Какое минимальное количество shm Space APC необходимо для правильной работы? В настоящее время я веду блог Wordpress на VPS, основанном на virtuozzo, и я не могу установить для ядра shm значение выше 32 МБ. Есть ли способ указать APC использовать «обычную» память вместо общей (у меня много оперативной памяти ...)
Мой текущий apc.ini выглядит так, но apc сообщает met, что он использует всего 30 МБ (1 сегмент (ы) с 30,0 МБ (память mmap, блокировка мьютекса pthread)):
extension = apc.so
apc.enabled = 1
apc.shm_segments = 15
apc.num_files_hint = 2700
apc.user_entries_hint = 2700
apc.ttl = 7200
apc.user_ttl = 3600
apc.gc_ttl = 600
apc.cache_by_default = 1
apc.max_file_size = 2M
apc.stat = 1
Используйте файлы apc.php из пакета APC, чтобы проверить, как APC использует память. Увеличивайте его, пока у APC не будет 20% свободной свободной памяти.
Для одного Wordpress с некоторыми плагинами может потребоваться более 40 МБ.
Решение нашел сам:
По умолчанию apc теперь использует mmap для разделяемой памяти. Теоретически mmap не должен быть привязан к максимальному размеру shm ядром, но кажется, что это так, по крайней мере, в средах с разделяемыми серверами, таких как virtuozzo. Также mmap игнорирует apc.shm_segments
потому что он не будет создавать несколько анонимных файлов для отображения в памяти без маски, поэтому, если вы также не установите apc.mmap_file_mask, это кажется бесполезным.
Другой способ - перекомпилировать apc, используя --disable-apc-mmap
и используйте вместо этого разделяемую память IPC!
Может быть установлено ограничение на размер запрашиваемого сегмента общей памяти.
Однако вы можете добавить несколько таких сегментов для использования APC в конфигурации: apc.shm_segments=2
http://php.net/manual/en/apc.configuration.php#ini.apc.shm-segments