enhance io参数配置方法及其含义

enhance io参数设置

一、配置方法:

可以利用sysctl -w或者编辑/etc/sysctl.conf进行配置,配置格式:dev.enhanceio.your_cachename.autoclean_thresholdf,函数eio_sysctl_register_common()针对每个值注册了一个回调函数,通过这些回调函数来修改dmc->sysctl_active.相应参数

 

二、参数含义解释:

以cache名字为my_cache为例

dev.enhanceio.my_cache.autoclean_threshold = 1 

// 0表示关闭autoclean,否则当nr_ios<=autoclean_threshold才可以进行autoclean,适用于time_based场景


dev.enhanceio.my_cache.control = 0

/*在函数 eio_control_sysctl 根据control的值不同执行相应的操作,其可取如下值

#define CACHE_CONTROL_FLAG_MAX  7

#define CACHE_VERBOSE_OFF       0

#define CACHE_VERBOSE_ON        1

#define CACHE_WRITEBACK_ON      2       /* register write back variables */

#define CACHE_WRITEBACK_OFF     3

#define CACHE_INVALIDATE_ON     4       /* register invalidate variables */

#define CACHE_INVALIDATE_OFF    5

#define CACHE_FAST_REMOVE_ON    6       /* do not write MD when destroying cache */

#define CACHE_FAST_REMOVE_OFF   7

*/

dev.enhanceio.my_cache.do_clean = 0 // clean all cache

dev.enhanceio.my_cache.zero_stats = 0 // 是否清空eio_stats0不清空,1清空,eio_stats.cached_blocks从不清空

 

//以下数值为百分比

//整个cache的百分比,high必须大于low,否则不会将set放入clean队列

dev.enhanceio.my_cache.dirty_high_threshold = 100 


//真正会清理的个数是nr_dirty - dirty_low_threshold*size/100

dev.enhanceio.my_cache.dirty_low_threshold = 90 


//单个set的百分比nr_dirty >= dirty_set_high_threshold*assoc/100

dev.enhanceio.my_cache.dirty_set_high_threshold = 100


//一个set中最多clean的个数cache_sets[set].nr_dirty - dirty_set_low_threshold * dmc->assoc) / 100) 

dev.enhanceio.my_cache.dirty_set_low_threshold = 90 


// 用于限制enhanceio在运行过程中可使用的最大内存,申请内存前eio_mem_available()会判断是否足够,默认值为75

dev.enhanceio.my_cache.mem_limit_pct = 90 


// 清理dirty cache的间隔,用于LRU算法,单位应该是秒,但是不明白为什么会有“time_based_clean_interval * 60

dev.enhanceio.my_cache.time_based_clean_interval = 1 

 

三、代码中初始化的默认值

eio_cache_create()

{

……

/* Initialize persistent thresholds */

dmc->sysctl_active.dirty_high_threshold = DIRTY_HIGH_THRESH_DEF;//30

dmc->sysctl_active.dirty_low_threshold = DIRTY_LOW_THRESH_DEF;//10

dmc->sysctl_active.dirty_set_high_threshold = DIRTY_SET_HIGH_THRESH_DEF;//100

dmc->sysctl_active.dirty_set_low_threshold = DIRTY_SET_LOW_THRESH_DEF;//30

dmc->sysctl_active.autoclean_threshold = AUTOCLEAN_THRESH_DEF;//128

dmc->sysctl_active.time_based_clean_interval =

TIME_BASED_CLEAN_INTERVAL_DEF(dmc);

……

}

 

原文:http://blog.csdn.net/wei_gw2012/article/details/79221278

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值