这个问题纠结了很长时间,贴出来请大牛们帮忙分析。
生产环境:
5台PHP服务器作负载均衡,每台机器上分别装了memcache,程序在使用cache时将5台memcache作为一个集群。
问题:
STATS出来的结果丢失率很高,命中率只达20%,(需要说明的是每台的使用率都不高--程序用的少),miss值并非均匀分布,呈每5分钟整点递增200+的态势。
问题排查:
1.crontab (环境很复杂,但可以确定生产服务没有开启)。
2.在程序里记录5分钟定点的miss key,无异常。
STATS:
Current Items(total) 2051 (14542)
Hits 134416
Misses 492000
Request Rate (hits, misses) 0.07 cache requests/second
Hit Rate 0.01 cache requests/second
Miss Rate 0.05 cache requests/second
Set Rate 0.00 cache requests/second
------解决方案--------------------
memcache服务器之间是否做了同步?
------解决方案--------------------
启动的时候加参数 -M试试
------解决方案--------------------
memcache不像其它带有队列功能的Nosql,其本身自带的lru是用来保证新数据能够正常缓存的,禁止lru可以防止数据被系统策略性丢弃,我个人的建议是你在没有获取到更好的解决方案之前,可以试试