我有两个使用 MemcacheD 存储常见数据库查询结果的 Web 服务。这两个服务都运行在三个负载均衡的 Web 服务器上,MemcacheD 也是如此,并且性能很好。但是,每两周一次,Web 服务的 CPU 使用率会从更正常的 5% 增加到 20%。我发现如果我重新启动 Memcache,那么问题就解决了。这个特定的 Web 服务更多地使用 MemCacheD 并存储更大的对象
我认为问题不在于我的 Web 服务(我知道的著名的遗言),因为在重新启动 Memcache 后,CPU 和内存使用情况会稳定下来并持续数天。
我认为 Memcache 的使用或设置方式可能存在问题。如果我不得不猜测,我会说问题是“抖动”,因为我的 Web 服务必须等待从 Memcache 获取对象。
可能是我的 Memcache 版本太旧(我从这里得到的)或者我没有给它足够的内存。当前为每个实例分配了 128 MB。是不是太低了?有什么工具可以用来衡量 Memcache 的性能以提供帮助吗?
编辑
我已将分配的内存增加到 500MB,发现只需要重新启动 Memcache 的一个实例。这表明问题不在于 Memcache,而在于我在那里使用一个特定对象的方式。我希望尽快解决这个问题。如果这有所作为,我会发布这个问题的答案。