尽量不帅气 发表于 2014-10-10 09:30

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内核时的效果?

尽量不帅气 发表于 2014-10-11 09:00

在执行echo 3 > /proc/sys/vm/drop_caches后性能提升明显;
可能是在系统回写的时候找内存页的时候浪费了大量时间。

尽量不帅气 发表于 2014-10-13 14:46

在回写机制上确实有所不同,但还不能完全确定就是这里的问题:
在2.6.28内核中sync_mode取消了WB_SYNC_HOLD模式,以至于在所有的而要等待的时候都必须按照WB_SYNC_ALL模式来等待;这样的话是不是可以理解为在需要等待同步的页面时,消耗的时间增加了呢?
由于等待机制的不同,我试着取消这部分代码后发现内核无法启动,可见它在所有需要同步的地方都用了这个机制。
由于相关内核代码牵扯太多,我暂时也没办法确定是不是这里的问题。
页: [1]
查看完整版本: 2.6.28内核中raw设备写性能优化