Specify I/O block size
Converted from bug #976716.
In this article http://
Facebook says that using 8MB block IO shows better results than 1MB IO.
I propose we create command line parameter to be able to change default IO block size.
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Vadim Tkachenko
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Review
- Series goal:
- Accepted for 2.0
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
I suggest we do the following (well, actually I have it mostlyimplemented already):
- Implement new option '--io-block-size' to xtrabackup and innobackupex (just for passthrough) which specifies number of pages to read/write per cycle.
- Increase the default from 64 pages to at least 256 pages (4M). In my recent testing on two systems, this seems to be a sweet spot with slowly increasing benefit up to about 512 pages. At 256 pages I am able to consistently get a 20-25% reduction in backup time with only a very minor hit to concurrent load throughput.
- For 2.1 with ds_buffer behind compression (and need to add behind encryption), should consider changing buffer size to (UNIV_PAGE_SIZE * (xtrabackup_iosize + 1)).
- Add a simple new test case to test with unusually low # and unusually high # as well as an unaligned value.
I have everything already implemented in a sandbox except for the test cases if you would like to move it forward.