我该如何确定发出flush_all命令的内容

时间:2012-05-14 18:17:35

标签: memcached

我们有一个memcached服务器,由大约24个应用程序共享。其中一个Web应用程序(或者可能是我们的一个实用程序应用程序)定期发出flush_all命令。频率似乎是随机的,或者至少我们还没有看到模式。它每小时发生10次左右。

这就是问题。我无法弄清楚找出哪个应用程序正在执行此操作的好方法。 memcacehd日志根本没用。这是我到目前为止所做的: * grep所有源代码 - 除了memcached库,我无法看到发出此命令的任何地方。 *在memcached中启用详细日志记录(-vv) - 我看到命令已发出,但日志中没有显示有关发出命令的位置的任何信息。 *研究如何在行政上禁用此功能;没有未经批准的memcached源补丁,我无法找到一个好方法。

还有其他人有这个问题吗?我假设这是来自我们的一个网络应用程序,但它可能来自其他地方。有什么建议吗?

我的下一步是设置第二个memcached服务器并逐个移动应用程序(这将是缓慢而耗时的)。必须有更好的方法。

1 个答案:

答案 0 :(得分:0)

有点晚了,但万一有人打这个......

我建议你设置多个memcache代理,并配置每个应用程序使用不同的代理。我找到的第一个代理是twemproxy,不知道它有多好。

之后,您可以使用代理的日志来识别发出命令的应用程序。