块设备性能调优

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

 

  使用实例:

  1. blktrace -d /dev/asd_cache /dev/sdd

  2. blkparse sdd > sdd.txt

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进行转发。

转载于:https://www.cnblogs.com/jawfeng/p/5011289.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值