Я полагаю, что вы не можете заставить запущенный экземпляр Memcached освободить память, если не завершить этот экземпляр Memcached (и освободить всю память, которую он содержал). Кто-нибудь знает какой-либо определенный документ или даже список рассылки или запись в блоге из надежного источника, который может подтвердить или опровергнуть это впечатление?
Насколько я понимаю, процесс Memcached изначально выделяет кусок памяти (точный начальный размер выделения настраивается), а затем монотонно увеличивает использование памяти в течение своего времени жизни, ограниченное максимальным размером выделения памяти демоном (также настраивается) , Ни при каких условиях демон Memcached никогда не освобождает память, независимо от того, нуждается ли демон в постоянной памяти.
Я знаю, что этот вопрос может звучать немного плаксиво, с тоном "Я ТРЕБУЮ, чтобы проект с открытым исходным кодом X поддержал мою конкретную потребность!" Это совсем не так - я просто заинтересован в точном техническом ответе здесь, и я клянусь, что я не критикую Memcached. Для любопытных этот вопрос возник из обсуждения возможных методов изящного манипулирования несколькими экземплярами Memcached на одном сервере с учетом приложения, в котором стоимость очистки кэша может быть довольно высокой.
Тем не менее, я был бы признателен, если бы вы сохранили свои предложения / советы по приложениям для другого вопроса (реорганизация моего приложения, использование другой реализации кэширования и т. Д.). Я ценю хороший мозговой штурм, но я думаю, что этот вопрос будет наиболее ценным, если он будет сосредоточен на технических особенностях того, как Memcached работает и не работает. Если у вас нет ответа на этот конкретный вопрос, вероятно, вы по-прежнему цените то, что вы хотите сказать, но я предполагаю, что есть другое, лучшее место для размещения более умозрительных комментариев / предложений / советов.