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