2012-03-19 47 views
5

我正在尋找記錄我的memcached服務器中正在進行的所有活動。所有讀取和寫入。Log Memcached活動

這將用作雲中許多遠程php應用程序的分佈式守護進程,並需要通過SSH進入並檢查守護進程中正在進行的活動。

我已經廣泛搜索並找不到一種方法來做到這一點。

Redis等效項將登錄到交互式控制檯並鍵入MONITOR。

在此先感謝。

+1

您可以創建一個API來訪問內存緩存,並將日誌記錄在此圖層上。但是我想它打敗了擁有快速性能存儲的目的。 – ajreal 2012-03-19 11:58:29

回答

5

你可以做到這一點使用的memcached的遠程登錄stats命令,例如:

  • 使捕獲信息:stats detail on
  • 等待一段時間
  • 禁止捕捉:stats detail off
  • 轉儲信息:stats detail dump

telnet yourhost 11211並運行上面的序列。請注意,這將大大影響性能。

此外,你可以檢查出phpmemcacheadmin - 這是一個非常好的監測memcached池的工具。

3

可以使用-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 

輸出發送到標準輸出,所以你可能希望它重定向到某個文件。

0

使用supervisord運行memcached。它會將memcached輸出(基於1,2或3個-v)輸出到syslog--所以日誌輪換應該可以工作(如果你只是將輸出管道輸出到文件中),你可以使用syslog發送所有的記錄到中央日誌記錄機器(使用類似graylog2的信息來獲取所有日誌信息)。