Конфигурация APCu — gc_ttl = 0?

Я работаю над оптимизацией конфигурации APCu на множестве занятых серверов. На прошлой неделе мы столкнулись с проблемой с APC, с этими ошибками в наших логах PHP

apc_add (): запись кэша GC ‘….:’ была в списке gc в течение 3601 секунды ‘из
серьезность 2 в /…/index.php в строке 55

я нашел это связанный поток SO, который заставляет меня задуматься об установлении нашего gc_ttl = 0, В настоящее время значение gc_ttl = 3600,

Я предполагаю, что у нас есть кеш-ключи, которые устарели, но не удаляются полностью и поэтому доступны для перераспределения apc_store звонки. Я не уверен, как определить, правда ли это предположение, есть идеи? Будет установка gc_ttl = 0 помочь освободить слоты для перераспределения?

Мне интересен график использования памяти.

Использование памяти APCu

Под круговой диаграммой написано

Свободно: 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

1

Решение

Это означает, что на устаревшее значение все еще ссылаются, и это сообщение давно было изменено с предупреждения на отладку. https://github.com/krakjoe/apcu/pull/45/files с этим пиаром https://github.com/krakjoe/apcu/pull/45.

Это означает, что вы должны быть на старой версии APC, и лучше обновить. В любом случае, кажется, вы можете просто игнорировать эти предупреждения.

2

Другие решения

Других решений пока нет …