【发布时间】:2010-09-18 01:20:46
【问题描述】:
我相信您不能强制正在运行的 Memcached 实例取消分配内存,除非终止该 Memcached 实例(并释放它持有的所有内存)。有没有人知道可以证实或否认这种印象的权威文档,甚至是来自可靠来源的邮件列表或博客帖子?
据我了解,Memcached 进程最初分配一块内存(确切的初始分配大小是可配置的),然后在其生命周期内单调增加其内存利用率,受守护进程的最大内存分配大小限制(也可配置) . Memcached 守护程序在任何时候都不会释放任何内存,无论该守护程序是否对其拥有的内存有任何持续需求。
我知道这个问题可能听起来有点发牢骚,语气是“我要求开源项目 X 支持我的特定需求!”根本不是这样——我只对确切的技术答案感兴趣,在这里,我发誓我不会对 Memcached 苛刻。出于好奇,这个问题来自关于在单个服务器上优雅地处理多个 Memcached 实例的可能方法的讨论,考虑到缓存刷新成本可能相当高的应用程序。
但是,如果您针对不同的问题(重新构建我的应用程序、使用不同的缓存实现等)保存您的应用程序建议/建议,我将不胜感激。我确实很欣赏一次好的头脑风暴,但我认为如果这个问题继续关注 Memcached 如何工作和如何工作的技术细节,它将是最有价值的。如果您没有这个特定问题的答案,那么您要说的话可能仍然有价值,但我想有一个不同的、更好的地方来发布更具投机性的 cmets/suggestions/advice。
【问题讨论】:
标签: memory memory-management memcached