memcache命中率問題
本帖最後由 laozhao0000 於 2014-02-07 16:15:50 編輯
這個問題糾結了很長時間,貼出來請大牛們幫忙分析。
生產環境:
5台PHP伺服器作負載平衡,每台機器上分別裝了memcache,程式在使用cache時將5台memcache作為一個叢集。
問題:
STATS出來的結果丟失率很高,命中率只達20%,(需要說明的是每台的使用率都不高--程式用的少),miss值並非均勻分布,呈每5分鐘整點遞增200+的態勢。
問題排查:
1.crontab (環境很複雜,但可以確定生產服務沒有開啟)。
2.在程式裡記錄5分鐘定點的miss key,無異常。
STATS:
Current Items(total)2051 (14542)
Hits134416
Misses492000
Request Rate (hits, misses)0.07 cache requests/second
Hit Rate0.01 cache requests/second
Miss Rate0.05 cache requests/second
Set Rate0.00 cache requests/second
------解決方案--------------------
memcache伺服器之間是否做了同步?
------解決方案--------------------
啟動的時候加參數 -M試試
------解決方案--------------------
引用:
Quote: 引用:
啟動的時候加參數 -M試試
這個是個memcache 的LRU有關吧
Free: 2.0 GBytes (100.0%) Hits: 134416 (21.5%)
Used: 521.5 KBytes (0.0%) Misses: 492000 (78.5%)
這種情況會開啟LRU嗎?
memcache不像其它帶有隊列功能的Nosql,其本身內建的lru是用來保證新資料能夠正常緩衝的,禁止lru可以防止資料被系統策略性丟棄,我個人的建議是你在沒有擷取到更好的解決方案之前,可以試試