首页 > 其他 > 详细

块设备性能调优

时间:2015-12-01 22:36:31      阅读:287      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!