我想记录我的memcached服务器中正在进行的所有活动。所有读写。
这将被用作云中许多远程php应用程序的分布式守护程序,需要一种SSH方法,并检查守护进程上正在进行的活动。
我已广泛搜索,无法找到一种方法来执行此操作。
Redis等效项将登录交互式控制台并输入MONITOR。
提前致谢。
答案 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的内容来获取所有日志信息)。