0

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

这就是问题所在。我想不出一个好方法来确定哪个应用程序正在执行此操作。memcacehd 日志根本没有帮助。这是我到目前为止所做的: * grep all source code - 除了 memcached 库之外,我在任何地方都看不到我们发出这个命令的地方。* 在 memcached 中启用详细日志记录 (-vv) - 我看到命令已发出,但日志未显示有关从何处发出命令的任何信息。* 研究如何在管理上禁用它;如果没有未经批准的 memcached 源补丁,我想不出一个好方法来做到这一点。

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

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

4

1 回答 1

0

有点晚了,但万一其他人碰到这个......

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

之后,您可以使用代理的日志来确定哪个应用程序正在发出命令。

于 2014-04-12T20:56:37.247 回答