记录Memcached活动

时间:2012-03-19 11:46:57

标签: memcached

我想记录我的memcached服务器中正在进行的所有活动。所有读写。

这将被用作云中许多远程php应用程序的分布式守护程序,需要一种SSH方法,并检查守护进程上正在进行的活动。

我已广泛搜索,无法找到一种方法来执行此操作。

Redis等效项将登录交互式控制台并输入MONITOR。

提前致谢。

3 个答案:

答案 0 :(得分:6)

您可以使用-vv参数启动memcached:

-vv           very verbose (also print client commands/reponses)

输出类似于:

Dec 12 10:33:12 hostname memcached[18350]: <33 new auto-negotiating client connection
Dec 12 10:33:12 hostname memcached[18350]: 33: Client using the ascii protocol
Dec 12 10:33:12 hostname memcached[18350]: <33 set your.key.1 3 300 525
Dec 12 10:33:12 hostname memcached[18350]: >33 STORED
Dec 12 10:33:12 hostname memcached[18350]: <33 get your.key.2
Dec 12 10:33:12 hostname memcached[18350]: >33 sending key your.key.2
Dec 12 10:33:12 hostname memcached[18350]: >33 END

输出发送到stdout,因此您可能希望将其重定向到某个文件。

答案 1 :(得分:5)

您可以使用memcached的telnet stats命令执行此操作:

  • 启用捕获信息:stats detail on
  • 等一会儿
  • 禁用捕获:stats detail off
  • 转储信息:stats detail dump

telnet yourhost 11211并运行上面的序列。请注意,这将极大地影响性能。

你也可以查看phpmemcacheadmin - 这是一个监控memcached池的非常好的工具。

答案 2 :(得分:0)

使用supervisord运行memcached。它将memcached输出(基于1,2或3-v&s)记录到syslog中 - 因此log rotation应该可以工作(如果只是将输出管道传输到文件,它就不会输入)您可以使用syslog将所有日志发送到中央日志记录计算机(使用类似graylog2的内容来获取所有日志信息)。