2.6.28内核中raw设备写性能优化
在修改了/proc/sys/vm/下几个变量的参数后性能有小幅度的提升,主要变化是:dirty_background_ratio: 5 -> 20
dirty_ratio: 10 -> 50
在修改了这两个参数后,写速度由362M/s 上升到了398M/s
但是在2.6.18内核中,这些改变是无效的;通过测试发现在2.6.18内核中性能瓶颈并不在这里,而是磁盘利用率已接近100%,具体对比如下:
avgqu-sz %util
2.6.18: 1.35 97
2.6.28(改变前): 0.90 57
2.6.28(改变后) : 1.04 64
由以上数据来看,在2.6.28内核中的写性能瓶颈极有可能是在内核回写机制上出现了问题。
那么现在的问题是:我要如何把它的性能提升到2.6.18内核时的效果? 在执行echo 3 > /proc/sys/vm/drop_caches后性能提升明显;
可能是在系统回写的时候找内存页的时候浪费了大量时间。 在回写机制上确实有所不同,但还不能完全确定就是这里的问题:
在2.6.28内核中sync_mode取消了WB_SYNC_HOLD模式,以至于在所有的而要等待的时候都必须按照WB_SYNC_ALL模式来等待;这样的话是不是可以理解为在需要等待同步的页面时,消耗的时间增加了呢?
由于等待机制的不同,我试着取消这部分代码后发现内核无法启动,可见它在所有需要同步的地方都用了这个机制。
由于相关内核代码牵扯太多,我暂时也没办法确定是不是这里的问题。
页:
[1]