Поэтому я использовал memcached для кеширования большого количества данных, которые были результатом запросов к базе данных. Все оставлено по умолчанию, и в среднем я храню <40 МБ в кэше памяти. Я использовал memcache.php для отслеживания этого. Затем я решил переключиться на APC и кэшировать вещи локально, потому что мне действительно не нужен memcache (чтобы избежать накладных расходов TCP?). Затем ситуация стала большой, и я начал замечать множество проблем с фрагментацией. У меня есть сервер с 16 ГБ ОЗУ, и его много, поэтому я назначил APC 2 ГБ. Примерно через 6 часов он заполнился до 1,1 ГБ. Я думаю, что он приближается к кешированию всего, что может кэшировать. Это огромная разница от того, что хранил memcache (<40 МБ). Не говоря уже о том, что график APC демонстрирует большую фрагментацию, и она продолжает расти. Не уверен, проблема в этом или нет?
Вот скриншот того, что дает мне APC.php: http://i.imgur.com/ey86r.png
Некоторые другие примечания: apc.gc_ttl = 0; apc.stat = 0;
Прошло несколько лет с тех пор, как я прикоснулся к APC, но из того, что я помню из своего чтения, всегда есть некоторый уровень фрагментации (ну, у нас всегда была фрагментация), даже с TTL, установленным на 0. Если вы не видите никаких проблем с производительностью с вашей системой, а фрагментация составляет от 5 до 7%, то я не думаю, что это проблема.
Я более чем счастлив, что меня подстрелили из-за этого, поскольку я сказал, что прошло несколько лет с тех пор, как я использовал APC.