高性能分布式內(nèi)存對(duì)象緩存系統(tǒng)memcached進(jìn)程(HIT )GET命中率有些低是什么原因?
[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!
最近幾天一直在想著如何把站搞快一下,但是好多都是無功而返,最近又盯上了Memcached,據(jù)說緩存效果還不錯(cuò),但在我這里,確實(shí)用處依然不是很大,還是記錄一下;
什么是Memcached
Memcached 是一個(gè)高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng),用于動(dòng)態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負(fù)載。它通過在內(nèi)存中緩存數(shù)據(jù)和對(duì)象來減少讀取數(shù)據(jù)庫的次數(shù),從而提供動(dòng)態(tài)、數(shù)據(jù)庫驅(qū)動(dòng)網(wǎng)站的速度。
Memcached基于一個(gè)存儲(chǔ)鍵/值對(duì)的HashMap,它并不提供冗余(復(fù)制其HashMap條目),當(dāng)某個(gè)服務(wù)器停止運(yùn)行或崩潰了,所有存放在服務(wù)器上的鍵/值對(duì)都將丟失。但目前Memcached的客戶端和代理程序可以提供多服務(wù)器的并聯(lián)方式,可以提供一定的處理能力。
Memcached與其他分布式緩存的區(qū)別
Memcached與其它常用的分布式緩存(例如EhCache、OSCache、JBoss Cache)最主要的區(qū)別在于Memcached采用集中式緩存方式(即一臺(tái)或多臺(tái)緩存服務(wù)器為所有應(yīng)用系統(tǒng)提供緩存能力),自身不提供集群能力,不提供緩存復(fù)制功能;而其他分布式緩存系統(tǒng)采用分布式緩存方式,各個(gè)應(yīng)用系統(tǒng)內(nèi)部提供數(shù)據(jù)緩存的能力,多個(gè)緩存間采用組播或點(diǎn)對(duì)點(diǎn)的方式進(jìn)行緩存同步。
在性能上來看,Memcached比其它分布式緩存系統(tǒng)低一半以上(未考慮大量數(shù)據(jù)在其它緩存系統(tǒng)進(jìn)行復(fù)制的影響);但從管理方面來看,Memcached的緩存采用集中管理的模式,應(yīng)用系統(tǒng)可以水平擴(kuò)展,而其它分布式緩存在水平擴(kuò)展的同時(shí),必須同時(shí)調(diào)整緩存復(fù)制策略,一旦應(yīng)用服務(wù)器節(jié)點(diǎn)大量擴(kuò)展,對(duì)于緩存服務(wù)器間的數(shù)據(jù)復(fù)制將成幾何數(shù)增加。
memcached作為一個(gè)內(nèi)存緩存擴(kuò)展,在提升動(dòng)態(tài)網(wǎng)站訪問速度上有著優(yōu)良的表現(xiàn)。對(duì)于memcached的執(zhí)行效果來說,命中率是一個(gè)很重要的指標(biāo),很多情況下命中率都達(dá)到90%以上;一些站長(zhǎng)發(fā)現(xiàn)自己的memcached命中率較低,甚至低于60%,除了排查代碼外,網(wǎng)站自身的訪問特點(diǎn)也是其命中率低的天然原因,比如老梁博客的命中率就不是太高,基本在保持85%左右;如下圖
memcached進(jìn)程命中率有些低的解說;
網(wǎng)站訪問量太少,同一頁面訪問太少;
新訪客比例較高,大量的訪問都來自新訪客;
新訪客進(jìn)入產(chǎn)生了一個(gè)key,每一次訪問看幾個(gè)頁面就走了,產(chǎn)生了get。大量訪問來自新訪客set,命中率天然地就低了。
問題未解決?付費(fèi)解決問題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!