過年期間,看了一些Memcache的資料,整理了一個PPT。
收獲最大的部分,我覺得是在應用上如何更好的對緩存進行使用和處理,來解決 Cache Stamples 的問題。通常隻進行一次緩存判斷的邏輯,在應對高并發的通路時,經常會引起問題,是以增加鎖機制和Mutex就非常必要。
Memcache伺服器的狀态
如果有人反映memcache連結比較慢的時候,可以按照下面的步驟來進行檢視
首先檢查Memcached伺服器組的 listen_disabled_num 參數,這個參數表明了這台伺服器曾經達到最大連接配接的次數,這個數字當然是越小越好,如果這個數字不斷快速的增長,我們就該小心我們的服務了。
accepting_conns 這個參數與上一個有關,我們可以簡單的檢視這個值是 1 或者 0 來判斷伺服器是否達到過最大連接配接。
curr_connections 這個狀态顯示了目前連接配接到伺服器上的數量,注意這個數字不要超過設定的最大值
limit_maxbytes 目前伺服器可以使用的最大記憶體數量,實際上伺服器中的 memcached 程序占用的記憶體會比這個數字大一些
cmd_flush 伺服器上執行了 flush_all 的次數
evictions 這個數字表示一些項目還沒有過期,但是因為 slab 中已經沒有可用的空間,導緻最後根據LRU算法被剔除的情況
一些統計數值
緩存命中率:計算公式 get_hits / ( get_hits + get_misses ) 伺服器的緩存命中率,越高越好
另外,可以使用下面這個腳本進行伺服器的測試
利用Cacti監控Memcached
Cacti作為一套成熟的系統,可以用來繪制與Memcached相關的各種統計圖表。下面提供的插件可以結合Cacti進行繪圖,但是需要下面幾個要求:1、系統已經安裝了Cacti;2、已經安裝好了Memcached;3、Cacti的機器上同時安裝了Python;4、安裝了Python的Memcached用戶端。
下面是一些截圖

安裝配置過程:
2、解壓後安裝
tar –xvzf python-memcached-1.47.tar.gz python setup.py install
4、解壓縮,然後将 memcached.py 拷貝到 cacti 的 /scripts/ 目錄中
5、為了确認這個腳本是否能夠正常運作,可以運作腳本進行測試
python memcached.py hostname
正常情況下,我們可以取得所連接配接伺服器的一些資料。
6、登入進入Cacti系統,選擇導入模闆,選擇我們下載下傳的模闆中的 cacti_memcached_host_template.xml 檔案,其它選項保持預設,進行儲存
7、系統的配置和使用
安裝完成後,我們可以在建立Device時看到對應的模闆,如下圖
對于已經存在的Device,也可以在Associated Graph Templates中選擇對應的模闆
8、之後就可以在Graph中看到對應圖表了。
參考資料