395 Star 1.4K Fork 1.3K

GVPopenEuler / kernel

 / 详情

裸盘fio测试性能劣化问题

已完成
任务
创建于  
2022-05-25 16:34

问题背景:引入特性shared host tags后,scsi驱动(例如megaraid-sas, hisi-sas等)从原来单硬队列(hctx)变成多队列,比如megaraid_sas,从原来的一个hctx变成96(中断个数)个hctx。目前driver tags是多个硬件队列共享的,但是sched tags非共享,即每个hctx对应一个私有的sched_tags,每个sched_tags允许nr_requests(256个)request,总共可以允许生成96 * 256个request,但是受到设备scsi queue_depth(比如:256)的限制,最多只能下发queue_depth个request到驱动,大量的request都积压在block层无法下发。

测试中fio的参数:共24个线程,iodepth是1024,就会下发很多request到block层。fio的runtime(60s)到了以后,由于积压的io都还没有返回,fio线程需要等待,导致fio计算的IOPS降低。由于是sata盘,本来随机读写很慢,加上block层大量的request,导致blktrace看到很多io的延时可能都20s+

测试方法:

cat fio.job

[global]
rw=randwrite
direct=1
ramp_time=1
ioengine=libaio
iodepth=1024
numjobs=24
bs=128k # 128k, 256k, 512k
group_reporting=1
runtime=60
filename=/dev/sdb

评论 (2)

yu 创建了任务

Hi yuyufen, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Kernel, and any of the maintainers: @YangYingliang , @pi3orama , @成坚 (CHENG Jian) , @jiaoff , @zhengzengkai , @Qiuuuuu , @刘勇强 , @Xie XiuQi

openeuler-ci-bot 添加了
 
sig/Kernel
标签

主线对应的修复补丁:
d97e594c5166 blk-mq: Use request queue-wide tags for tagset-wide sbitmap

原理:
将sched_tags变成shared sbitmap,避免上层下发过多的request到block层,从避免block层request积压和IO延时增大

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
5329419 openeuler ci bot 1632792936
C
1
https://gitee.com/openeuler/kernel.git
git@gitee.com:openeuler/kernel.git
openeuler
kernel
kernel

搜索帮助