Memcached有個stats命令,通過它可以查看Memcached服務的許多狀態信息。使用方法如下:
先在命令行直接輸入telnet 主機名端口號,連接到memcached服務器,然後再連接成功後,輸入stats 命令,即可顯示當前memcached服務的狀態信息。
比如在我本機測試如下:
stats
STAT pid 1552
STAT uptime 3792
STAT time 1262517674
STAT version 1.2.6
STAT pointer_size 32
STAT curr_items 1
STAT total_items 2
STAT bytes 593
STAT curr_connections 2
STAT total_connections 28
STAT connection_structures 9
STAT cmd_get 3
STAT cmd_set 2
STAT get_hits 2
STAT get_misses 1
STAT evictions 0
STAT bytes_read 1284
STAT bytes_written 5362
STAT limit_maxbytes 67108864
STAT threads 1
END
這裡顯示了很多狀態信息,下邊詳細解釋每個狀態項:
1. pid: memcached服務進程的進程ID
2. uptime: memcached服務從啟動到當前所經過的時間,單位是秒。
3. time: memcached服務器所在主機當前系統的時間,單位是秒。
4. version: memcached組件的版本。這裡是我當前使用的1.2.6。
5. pointer_size:服務器所在主機操作系統的指針大小,一般為32或64.
6. curr_items:表示當前緩存中存放的所有緩存對象的數量。不包括目前已經從緩存中刪除的對象。
7. total_items:表示從memcached服務啟動到當前時間,系統存儲過的所有對象的數量,包括目前已經從緩存中刪除的對象。
8. bytes:表示系統存儲緩存對象所使用的存儲空間,單位為字節。
9. curr_connections:表示當前系統打開的連接數。
10. total_connections:表示從memcached服務啟動到當前時間,系統打開過的連接的總數。
11. connection_structures:表示從memcached服務啟動到當前時間,被服務器分配的連接結構的數量,這個解釋是協議文檔給的,具體什麼意思,我目前還沒搞明白。
12. cmd_get:累積獲取數據的數量,這裡是3,因為我測試過3次,第一次因為沒有序列化對象,所以獲取數據失敗,是null,後邊有2次是我用不同對象測試了2次。
13. cmd_set:累積保存數據的樹立數量,這裡是2.雖然我存儲了3次,但是第一次因為沒有序列化,所以沒有保存到緩存,也就沒有記錄。
14. get_hits:表示獲取數據成功的次數。
15. get_misses:表示獲取數據失敗的次數。
16. evictions:為了給新的數據項目釋放空間,從緩存移除的緩存對象的數目。比如超過緩存大小時根據LRU算法移除的對象,以及過期的對象。
17. bytes_read:memcached服務器從網絡讀取的總的字節數。
18. bytes_written:memcached服務器發送到網絡的總的字節數。
19. limit_maxbytes:memcached服務緩存允許使用的最大字節數。這裡為67108864字節,也就是是64M.與我們啟動memcached服務設置的大小一致。
20. threads:被請求的工作線程的總數量。這個解釋是協議文檔給的,具體什麼意思,我目前還沒搞明白。
總結:stats命令總體來說很有用,通過這個命令我們很清楚當前memcached服務的各方面的信息。