收獲最大的部分,我覺得是在應用上如何更好的對緩存進行使用和處理,來解決 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 ) 服務器的緩存命中率,越高越好
另外,可以使用下面這個腳本進行服務器的測試
測試腳本: http://consoleninja.net/code/memcached/mc_conn_tester.pl
利用Cacti監控Memcached
Cacti作為一套成熟的系統,可以用來繪制與Memcached相關的各種統計圖表。下面提供的插件可以結合Cacti進行繪圖,但是需要下面幾個要求:1、系統已經安裝了Cacti;2、已經安裝好了Memcached;3、Cacti的機器上同時安裝了Python;4、安裝了Python的Memcached客戶端。
下面是一些截圖
下載Cacti取數據的腳本: Cacti-memcached-1.0.tar.gz
安裝配置過程:
1、下載Python的客戶端API,
python-memcached-1.47.tar.gz
2、解壓后安裝
tar –xvzf python-memcached-1.47.tar.gz
python setup.py install
3、下載Cacti的模板, Cacti-memcached-1.0.tar.gz
4、解壓縮,然后將 memcached.py 拷貝到 cacti 的 /scripts/ 目錄中
5、為了確認這個腳本是否能夠正常運行,可以運行腳本進行測試
python memcached.py hostname
正常情況下,我們可以取得所連接服務器的一些數據。
6、登錄進入Cacti系統,選擇導入模板,選擇我們下載的模板中的 cacti_memcached_host_template.xml 文件,其它選項保持默認,進行保存
此時,我們在Cacti系統中引入模板就已經完成了,你會看到成功的提示,并且有一些相關的信息顯式或者一些報錯的界面。如果沒有成功,可以參考這里的 幫助 。
7、系統的配置和使用
安裝完成后,我們可以在新建Device時看到對應的模板,如下圖
對于已經存在的Device,也可以在Associated Graph Templates中選擇對應的模板
8、之后就可以在Graph中看到對應圖表了。
參考資料
1、
Memcached Wiki Timeouts
2、
利用Cacti監控Memcached
3、
Memcached數據被踢現象分析(evicitions>0)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
