это текущий apc.ini
extension=apc.so
apc.enabled=1
apc.ttl=86400
apc.user_ttl=86400
apc.shm_segments=1
apc.shm_size=64
что дает мне
1 Segment(s) with 64.0 MBytes
(mmap memory, pthread mutex locking)
самое забавное, что согласно этому должно быть возможно только 32M ..
cat /proc/sys/kernel/shmmax
33554432
если я увеличиваю сегменты, это просто не влияет, но отображается в apc.php, если я увеличиваю shm_size выше 64 (независимо от настройки сегментов), я получаю следующую ошибку:
[apc-error] apc_mmap: mmap failed: No space left on device
Мне нужно около 90 МБ opcache, поэтому, насколько я понимаю, с учетом настройки shmmax я бы выбрал сегменты 2x32M ...
кто-нибудь может придумать причину, по которой несколько сегментов не работают? любая идея, почему 64M работает, хотя предел shmmax составляет 32M?
APC Version 3.0.19
PHP Version 5.2.0-8+etch16
и система (ленни) ...
uname -a
Linux vs210044.vserver.de 2.6.9-023stab052.4-smp #1 SMP Tue May 11 19:21:39 MSD 2010 x86_64 GNU/Linux
и да, я знаю, что он устарел, у меня еще не было возможности обновить, это немного сложно ...
Похоже, что некоторые версии APC (3.0.14 в моем случае) игнорируют значение apc.shm_segments и идут с apc.shm_size, а также принимает значения, превышающие максимально допустимый размер для каждого сегмента. Как и в вашем случае. Когда вы выделяете больше, 32M apache должен зависать, по крайней мере, в моем случае.
Почему бы вам просто не увеличить размер shmmax в /etc/sysctl.conf до 90M? Это решило мои проблемы ...
Удалите неиспользуемые библиотеки из /etc/php5/apache2/conf.d. Возможно, вам не нужны pdo.ini и pdo_mysq.ini или mysqli.ini. Это сэкономит немного Mega of Ram.
Я была такая же проблема. Вам необходимо определить память в формате 64M, а не только числовое значение (см. Значение по умолчанию в руководство) .:
apc.shm_size=64M
вы используете apc с mmap? тогда вы не можете использовать несколько сегментов.
32 МБ / proc / sys / kernel / shmmax по умолчанию используются в Debian. вы можете вырастить их с помощью:
1) file: /etc/sysctl.conf
2) value: kernel.shmmax=134217728
3) save for reboots: sysctl -p
если система виртуализирована - вам также следует проверить лимиты openvz, vmware и т. д.
если вы не повышаете системные ограничения - apc не хватает места с: [apc-error] apc_mmap: mmap failed: на устройстве не осталось места
Надеюсь, это поможет - в Интернете я видел множество тем с той же проблемой.