PHP APC: Что происходит, когда кеш APC заполнен?

Что происходит, когда вы пытаетесь добавить переменную в APC, и кеш APC заполнен? Он автоматически удаляет наименее используемую переменную из кеша?

Согласно APC: Конфигурация времени выполнения: «Если кеш исчерпает доступную память, кеш будет полностью удален, если ttl равно 0. В противном случае, если ttl больше 0, APC попытается удалить истекшие записи «.

Поэтому, если есть ненулевой TTL, он удалит записи, время прохождения которых прошло. 😉 В противном случае он удалит весь кеш.

Я замечаю, что это действительно не касается того, что происходит, если в кеше не хватает памяти, и у вас слишком высокий TTL.

Из опыта (мы запускаем его в процессе производства), если вы не устанавливаете TTL, или TTL очень высок, и ничего не устарело, весь кеш очищается (как в пустом). Вы действительно хотите попытаться избежать этого, так как это вызовет всплеск нагрузки при следующем запросе, с которым приходится сталкиваться PHP, поскольку для каждого файла, необходимого для APC, необходимо будет скомпилировать его и сохранить в памяти (что в качестве немного более медленного процесса, чем вообще не включен кеш). Также, если вы получаете много трафика и пустой кеш, вы будете испытывать кэш-шлемы (см. Google о злобности этого)

В качестве дополнительной заметки см. Эту старую презентацию для довольно грубого руководства по APC и тому, что нужно отслеживать по http://www.slideshare.net/oscon2007/os-gopal. Возможно, что-то не так, но теория остается верной ,