码迷,mamicode.com
首页 > 其他好文 > 详细

块设备性能调优

时间:2015-12-01 22:38:33      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:

1. 工具

  kprobe,用于抓一些实时数据

  iostate -kx 1 /dev/*

  blktrace -d /dev/dm-33 -o - |blkparse -i - -o blkparse.out

http://blog.chinaunix.net/uid-24774106-id-4096470.html

2. 通过trace发现,有的时候bio出队列是由kblockd进程完成的,而kblockd每3ms执行一次(blk_unplug_timeout),这也就是性能低下的原因。

    但有的时候,却是在当前上下文出队列,不经过io调度子系统(应该是调用了__generic_unplug_device)。

3. blk_queue_make_request(),这个函数里面设置了q->unplug_delay = msecs_to_jiffies(3),3ms唤醒kblockd一次。

  

在device mapped框架下的块设备:

dm_request() 【bio的入口】

  --> blk_queue_bio(q, bio)

    --> blk_queue_bio

在blk_queue_bio函数中,如果bio设置了BIO_RW_UNPLUG位,const bool unplug = bio_rw_flagged(bio, BIO_RW_UNPLUG);

则会调用__generic_unplug_device(),即可以在当前上下文中对bio进行转发。

块设备性能调优

标签:

原文地址:http://www.cnblogs.com/jawfeng/p/5011289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!