Re: Re: [PATCH 0/2] Improve odirect-write performance for block-device.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2012/7/15 majianpeng <majianpeng@xxxxxxxxx>:
> On 2012-07-16 11:29 Shaohua Li <shli@xxxxxxxxxx> Wrote:
>>2012/7/15 majianpeng <majianpeng@xxxxxxxxx>:
>>> Create a raid5 using four disk and the chunksize is 512K.
>>> Test command is: dd if=/dev/zero of=/dev/md0 bs=1536K count=90000 oflag=direct
>>>
>>> In RHEL6(kernel 2.6.32):speed about 240MB/s
>>> In 3.5.0-rc5:speed about 77MB/S
>>> Add two patch in 3.5.0-rc5, speed about 200MB/S.
>>>
>>> So the performance of odirect-wrirte for block-deivce was obvious reduced.
>>> PATCH 1/2: Add blk_plug function for odirect-write block-device
>>> PATCH 2/2: Remove REQ_SYNC for odirect-write in raid456.
>>>
>>> PATCH 2/2 maybe not correct because it alse for odirect-write for regular file.
>>> Jianpeng Ma (2):
>>>   fs/block-dev.c:fix performance regression in O_DIRECT writes to
>>>     md block devices.
>>
>>In raid5, all requests are submitted by raid5d thread, which already has
>>plug. Why doesn't it work?
> No. the purpose of two patch is to reduce the read operation when write which was not full-write.
> I tested in RHEL6.The read operation is zero.But in 3.5.0-rc5, the read operaiton may equal to write-operation.
> And i used the bs was 1536k(3*512k(chunk-size)).

yes, I know. But I want to understand why we need the plug in your
test. The IO is dispatched from raid5d, it already has plug.

Fengguang used to post a patch to move the plug from generic_file_aio_write
to do_blockdev_direct_IO, which sounds better.

>>>   raid5: For write performance, remove REQ_SYNC when write was odirect.
>>
>>REQ_SYNC only impacts CFQ, this sounds not reasonable. So the disks
>>are using CFQ ioscheduler. Can you check if you can see the same issue
>>with deadline?
> I tested and the result is the same like cfq.
> But in RHEL6, the ioscheduler is also cfq.
>>
>>Let me guess, without REQ_SYNC, read will get higher priority against write
>>in CFQ, so in this case, write gets delayed, and maybe get better write
>>request merge. And now with REQ_SYNC, read and write has the same
>>priority, there is less request merge.
>>
>>Thanks,
>>Shaohua
> For harddisk,the read for not full-write will remarkly reduce the performance.
> So the first it to make write full-write as posible.

yes, this is the symptom, but I'd like to understand why REQ_SYNC makes
the difference.

Thanks,
Shaohua
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux