On 2019/09/19 11:57, Liu, Sunny wrote: > Hello Sir, > > I have a question about the I/O scheduler in kernel 5.2.9 > > in the new kernel, which I/O scheduler should be used by legacy rotating > drive? Such as sata HDD? During FIO testing with libaio, I had create > multiple thread in the testing, and then found 512k and bigger sequent write > had bad performance result. Even I had enable and use BFQ scheduler. > > There has no sq scheduler anymore, only has none, mq-deadline, kyber and > BFQ. Mq-deadline and kyber is for fast block device. Only the BFQ looks > better performance, but it can't keep the good behavior during 512k or bigger > 100% seq write. > > Could you give me some advices what parameter should I change for multiple > thread bigger file seq writing? The default block IO scheduler for a single queue device (e.g. HDDs in most cases, but beware of the HBA being used and how it exposes the disk) is mq-deadline. For a multiqueue device (e.g. NVMe SSDs), the default elevator is none. For your SATA SSD, which is a single queue device, the default elevator will be mq-deadline. This elevator should give you very good performance. "none" will probably also give you the same results though. Performance on SSD highly depends on the SSD condition (the amount and pattern of writes preceding the test). You may want to trim the entire device before writing it to check the maximum performance you can get out of it. > > Thanks all of you. > > BestRegards, SunnyLiu(刘萍) LenovoNetApp 北京市海淀区西北旺东路10号院2号楼L3-E1-01 > L3-E1-01,Building No.2, Lenovo HQ West No.10 XiBeiWang East Rd., Haidian > District, Beijing 100094, PRC Tel: +86 15910622368 > > -----Original Message----- From: linux-block-owner@xxxxxxxxxxxxxxx > <linux-block-owner@xxxxxxxxxxxxxxx> On Behalf Of Hannes Reinecke Sent: 2019年9 > 月19日 17:46 To: Jens Axboe <axboe@xxxxxxxxx> Cc: linux-scsi@xxxxxxxxxxxxxxx; > Martin K. Petersen <martin.petersen@xxxxxxxxxx>; James Bottomley > <james.bottomley@xxxxxxxxxxxxxxxxxxxxx>; Christoph Hellwig <hch@xxxxxx>; > linux-block@xxxxxxxxxxxxxxx; Hans Holmberg <hans.holmberg@xxxxxxx>; Damien Le > Moal <damien.lemoal@xxxxxxx>; Hannes Reinecke <hare@xxxxxxx> Subject: [RFC > PATCH 0/2] blk-mq I/O scheduling fixes > > Hi all, > > Damien pointed out that there are some areas in the blk-mq I/O scheduling > algorithm which have a distinct legacy feel to it, and prohibit multiqueue > I/O schedulers from working properly. These two patches should clear up this > situation, but as it's not quite clear what the original intention of the > code was I'll be posting them as an RFC. > > So as usual, comments and reviews are welcome. > > Hannes Reinecke (2): blk-mq: fixup request re-insert in > blk_mq_try_issue_list_directly() blk-mq: always call into the scheduler in > blk_mq_make_request() > > block/blk-mq.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) > > -- 2.16.4 > > -- Damien Le Moal Western Digital Research