如何提高服务器缓存命中率

来源:互联网 发布:微盘今日数据 编辑:程序博客网 时间:2024/05/19 21:59

1.通过使用多级hash缓存:

假如一个hash表数据存储在一个arr[size]数组中,那么元素位置计算方式为:int location =  key%size;但是不同key,可能有相同的位置,这样就会造成缓存命中率下降,

解决办法:多维数组,20-25行,每行10000列,根据离散数学余数原理,每行最大元素个数离10000最近的质数最好,而且每行依次递减

例如9997 9991 当key%9997 时,如果存储位置已经存在元素,则key%9991,这样能提高缓存命中率,当然也会有不能加入缓存的元素,对于这部分数据,可以写到磁盘上,索引文件映射到内存中,这样可以通过索引快速定位到数据文件中的数据 ,然后把文件中的数据添加到内存中,这样获取数据反应速度会降低

2.如果对缓存数据可靠性要求高,不考虑多线程情况下,对于共享内存数据读取可以使用volidate(同步)关键字

3.数据大小不同业务对应不同缓存实例,memcache基本单位是page(默认1M),一个slab多个page,一个page多个chunk,item是数据值占的内存的大小,根据chunk大小选择;slab之间大小通过增长因子控制(默认1.25)            

通过判断 get_miss/(get_miss+get_hit)、evictions(memcache内存满后删除旧item数目)


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 鲜切花花朵蔫了怎么办 兔子扭伤脚肿了怎么办 兔子的耳朵肿了怎么办 家里养兔子大了怎么办 幼兔不吃兔粮怎么办 大兔子咬小兔子怎么办 买的小兔子拉稀怎么办 半个月的小兔子怎么办 母兔下崽没奶怎么办 母松鼠下崽后没有奶怎么办 母猫下崽后小猫没奶吃怎么办 母兔产后没奶水怎么办 兔子生崽了不管怎么办 兔子下小兔不管小兔怎么办 兔子下小兔示喂奶怎么办 兔子生完小兔不喂奶怎么办 小兔子生宝宝了怎么办 人摸了小兔崽怎么办 狗狗尿道有脓怎么办 笼养母兔下崽了怎么办 小羊羔站不起来怎么办 兔子不让小兔子吃奶怎么办 兔子不吃东西没精神怎么办 母兔没有初奶怎么办 兔子只喝水不吃东西怎么办 兔子不吃东西也不喝水怎么办 兔子怀孕后不爱吃东西喝水怎么办 母兔产仔无奶怎么办 仔兔十五天母兔没奶怎么办 兔子刚生下兔宝宝该怎么办 兔子不吃草超瘦怎么办 兔子喝水喝多了怎么办 狗吃了变质食物怎么办 狗崽20天没睁眼怎么办 刚生的小狗缺氧怎么办 狗狗生出来了怎么办 刚生的小狗狗死了怎么办 母狗生的死狗怎么办 狗生宝宝都死了奶水怎么办 狗狗生出来不动怎么办 兔子喝了84水怎么办