Використання TTL 0 означає, що APC промиє весь кеш коли у нього закінчиться пам'ять. Помилка більше не з’являється, але це робить APC набагато менш ефективним. Це не ризик, не біда, "я не хочу робити свою роботу". APC не призначений для використання таким чином. Ви повинні вибрати TTL досить високий, щоб найбільш не доступні сторінки не закінчувались. Найкраще - дати достатню кількість пам’яті, щоб APC не потребував очищення кешу.
Просто прочитайте посібник, щоб зрозуміти, як використовується ttl: http://www.php.net/manual/en/apc.configuration.php#ini.apc.ttl
Рішення полягає в збільшенні пам'яті, виділеної APC. Зробіть це, збільшивши apc.shm_size.
Якщо APC складено для використання спільної сегментної пам'яті, ви будете обмежені вашою операційною системою. Введіть цю команду, щоб побачити системний ліміт для кожного сегменту:
sysctl -a | grep -E "shmall|shmmax"
Щоб виділити більше пам'яті, вам доведеться збільшити кількість сегментів за допомогою параметра apc.shm_segments.
Якщо APC використовує mmap пам'ять, то у вас немає обмеження. Обсяг пам'яті все ще визначається тим самим параметром apc.shm_size.
Якщо на сервері недостатньо пам'яті, то використовуйте параметр фільтрів, щоб запобігти кешування менш часто доступних файлів php.
Але ніколи не використовуйте TTL 0.
Як сказано в c33, використовуйте apc.php для перевірки конфігурації. Скопіюйте файл з пакету apc у веб-папку та вкажіть на нього браузер. Ви побачите, що насправді виділено та як воно використовується. Графіки повинні залишатися стабільними протягом години, якщо вони повністю змінюються при кожному оновленні, то це означає, що ваша установка неправильна (APC все змиває). Виділіть на 20% більше оперативної пам’яті, ніж те, що APC насправді використовує як запас безпеки, і регулярно перевіряйте їх.
За замовчуванням дозволяти лише 32 МБ смішно низько. PHP був розроблений, коли сервери були 64 Мб і більшість сценаріїв використовували один файл php на сторінку. На сьогодні такі рішення, як Magento, потребують понад 10 к файлів (~ 60 Мб в APC). Ви повинні забезпечити достатню кількість пам'яті, щоб більшість файлів PHP завжди були кешовані. Це не марно, ефективніше зберігати опкод в операційному режимі, а не мати відповідну сировину PHP у кеш-файлі. На сьогоднішній день ми можемо знайти спеціалізовані сервери з 24 Гб оперативної пам’яті на цілих 80 доларів на місяць, тому не соромтеся дозволити APC декількома ГБ. Я поставив 2 ГБ з 24 ГБ на сервер, що розміщує 5Magento магазинів та ~ 40 веб-сайт wordpress, APC використовує 1,2 ГБ. Порахуйте 64 Мб для установки Magento, 40 Мб для Wordpress з деякими плагінами.
Крім того, якщо у вас є веб-сайти для розробки на одному сервері. Виключіть їх із кешу.