dm-snapshot: poor copy-on-write performance due to I/O reordering
Bodo Eggert wrote:
Kazuo Ito <email@example.com> wrote:
Write throughput to LVM snapshot origin volume is an order
of magnitude slower than those to LV without snapshots or
snapshot target volumes, especially in the case of sequential
writes with O_SYNC on.
The following patch originally written by Kevin Jamieson and
Jan Blunck and slightly modified for the current RCs by myself
tries to improve the performance by modifying the behaviour
of kcopyd, so that it pushes back an I/O job to the head of
the job queue instead of the tail as process_jobs() currently
does when it has to wait for free pages. This way, write
requests aren't shuffled to cause extra seeks.
Did you check for starvation problems, too?
I ran sadc along with the tests and figures like
%memused, kbbuffers and kbcached didn't change much
before and after the patch. And since the buffered I/O
results didn't deteriorate at least in the cases of
10 and 100 megabyte sequential writes, I assumed
there should be plentiful of memory for the kernel
to use at least in these cases.
Anyway I can send you more detailed info upon your request.
Kazuo Ito, NTT Open Source Software Center
Phone: +81-3-5860-5125 / FAX: +81-3-5463-5690 / E-mail: firstname.lastname@example.org
dm-devel mailing list