Я работаю над оптимизацией конфигурации APCu на множестве занятых серверов. На прошлой неделе мы столкнулись с проблемой с APC, с этими ошибками в наших логах PHP
apc_add (): запись кэша GC ‘….:’ была в списке gc в течение 3601 секунды ‘из
серьезность 2 в /…/index.php в строке 55
я нашел это связанный поток SO, который заставляет меня задуматься об установлении нашего gc_ttl = 0
, В настоящее время значение gc_ttl = 3600
,
Я предполагаю, что у нас есть кеш-ключи, которые устарели, но не удаляются полностью и поэтому доступны для перераспределения apc_store
звонки. Я не уверен, как определить, правда ли это предположение, есть идеи? Будет установка gc_ttl = 0
помочь освободить слоты для перераспределения?
Мне интересен график использования памяти.
Под круговой диаграммой написано
Свободно: 264,9 МБ (66,2%)
Однако зеленая часть круговой диаграммы показывает, что доступно только 161,4 МБ.
Наша текущая конфигурация apcu
; Enable apcu extension module
extension=apcu.so
apc.enable_cli=1
apc.enabled=1
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.shm_size=400M
apc.ttl=7200
apc.entries_hint=28000
Это означает, что на устаревшее значение все еще ссылаются, и это сообщение давно было изменено с предупреждения на отладку. https://github.com/krakjoe/apcu/pull/45/files с этим пиаром https://github.com/krakjoe/apcu/pull/45.
Это означает, что вы должны быть на старой версии APC, и лучше обновить. В любом случае, кажется, вы можете просто игнорировать эти предупреждения.
Других решений пока нет …