[LU-9356] add blk_plug into osd-ldiskfs when do bio Created: 18/Apr/17 Updated: 19/Jun/17 Resolved: 28/Apr/17 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | Lustre 2.10.0 |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Qian Yingjin (Inactive) | Assignee: | Qian Yingjin (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||
| Description |
|
During 16MB bulk RPC I/O evaluation on rhel7, due to kernel BIO_MAX_PAGES (256) limit, the 16MB IO is divided into 16 1MB I/O submitting to underly block device one by one. And we found that the SFA disk driver got lots of 1MB IOs. To optimize the performance, this patch introduces blk_plug into osd-ldiskfs when do bio, before submit IOs, it calls blk_start_plug, after submit all 16MB IOs, calls blk_finish_plug, so that the 16MB bulk IO will have more change to merge in the block evelvator scheduler layer. |
| Comments |
| Comment by Gerrit Updater [ 18/Apr/17 ] |
|
Yingjin Qian (qian@ddn.com) uploaded a new patch: https://review.whamcloud.com/26697 |
| Comment by Andreas Dilger [ 23/Apr/17 ] |
|
What else might be interesting in this area in the future would be to combine the IO queue plugging with NRS (like ORR, or similar enhancements to TBF) so that small write RPCs from multiple clients can be merged into a single large write by one OSS thread. Essentially the OSS thread would select multiple RPCs from the queue based on FID and file offset and then remove them from the NRS queue and process them together so that they can be merged before submission to the block device. |
| Comment by Gerrit Updater [ 28/Apr/17 ] |
|
Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/26697/ |
| Comment by Peter Jones [ 28/Apr/17 ] |
|
Landed for 2.10 |