Hi ,
just to give some feedback on 2.6.24-rc1. For some time I am tracking IO/writeback problems that hurt system responsiveness big-time. I tested Peters stuff together with Fenguangs additions and it looked promising. Therefore I was very happy to see Peters stuff going into 2.6.24 and waited eagerly for rc1. In short, I am impressed. This really looks good. IO throughput is great and I could not reproduce the responsiveness problems so far.
Below are a some numbers of my brute-force I/O tests that I can use to bring responsiveness down. My platform is a HP/DL380g4, dual CPUs, HT-enabled, 8 GB Memory, SmartaArray6i controller with 4x72GB SCSI disks as RAID5 (battery protected writeback cahe enabled) and gigabit networking (tg3). User space is 64-bit RHEL4.3
I am basically doing copies using "dd" with 1MB blocksize. Local Filesystem ist ext2 (noatime). IO-Scheduler is dealine, as it tends to give best results. NFS3 Server is a Sun/T2000/Solaris10. The tests are:
dd1 - copy 16 GB from /dev/zero to local FS
dd1-dir - same, but using O_DIRECT for output
dd2/dd2-dir - copy 2x7.6 GB in parallel from /dev/zero to local FS
dd3/dd3-dir - copy 3x5.2 GB in parallel from /dev/zero lo local FS
net1 - copy 5.2 GB from NFS3 share to local FS
mix3 - copy 3x5.2 GB from /dev/zero to local disk and two NFS3 sharesI did the numbers for 2.6.19.2, 2.6.22.6 and 2.6.24-rc1. All units are MB/sec.
test 2.6.19.2 2.6.22.6 2.6.24.-rc1
----------------------------------------------------------------
dd1 28 50 96
dd1-dir 88 88 86
dd2 2x16.5 2x11 2x44.5
dd2-dir 2x44 2x44 2x43
dd3 3x9.8 3x8.7 3x30
dd3-dir 3x29.5 3x29.5 3x28.5
net1 30-33 50-55 37-52
mix3 17/32 25/50 96/35 (disk/combined-network)Some observations:
- single threaded disk speed really went up wit 2.6.24-rc...
wow, really nice results! Peter does know how to make stuff fast :) Now
Such as the rewritten reclaim (clockpro) patches:
http://programming.kicks-ass.net/kernel-patches/page-replace/
The improve-swap-performance (swap-token) patches:
http://programming.kicks-ass.net/kernel-patches/swap_token/
His enable-swap-over-NFS [and other complex IO transports] patches:
http://programming.kicks-ass.net/kernel-patches/vm_deadlock/
And the concurrent pagecache patches:
http://programming.kicks-ass.net/kernel-patches/concurrent-pagecache/
as a starter :-) I think the MM should get out of deep-feature-freeze
mode - there's tons of room to improve :-/Ingo "runs and hides" Molnar
-
On Fri, 26 Oct 2007 17:22:21 +0200
Those changes seem suspiciously large to me. I wonder if there's less
physical IO happening during the timed run, and correspondingly moreKidding. We merge about 265 MM patches in 2.6.24-rc1:
482 files changed, 8071 insertions(+), 5142 deletions(-)
-
On Fri, 26 Oct 2007 12:21:55 -0700
another option... this is ext2.. didn't the ext2 reservation stuff get
merged into -rc1? for ext3 that gave a 4x or so speed boost (much
better sequential allocation pattern)(or maybe I'm just wrong)
-
Yes, one would expect that to make a large difference in dd2/dd2-dir and
dd3/dd3-dir - but only on SMP. On UP there's not enough concurrency in the
fs block allocator for any damage to occur.Reservations won't affect dd1 though, and that went faster too.
-
so a final 'sync' should be added to the test too, and the time it takes
impressive :)
Ingo
-
On Fri, 26 Oct 2007 21:33:40 +0200
That's one way of doing it. Or just run the test for a "long" time. ie:
much longer than (total-memory / disk-bandwidth). Probably the latterA lot of that was new functionality. That's easier to add than things
which change long-standing functionality.
-
Longer might be less inaccurate, but without flushing the last data you
really don't get best accuracy, you just reduce the error. Clearly doing
fdatasync() is best, since other i/o caused by sync() can skew the results.--
Bill Davidsen <davidsen@tmr.com>
"We have more to fear from the bungling of the incompetent than from
the machinations of the wicked." - from Slashdot-
I think riel is taking over that stuff with his split vm and policies
Will post that one again, soonish.... Esp. after Linus professed liking
to have swap over NFS.I've been working on improving the changelogs and comments in that code.
latest code (somewhat raw, as rushed by ingo posting this) in:
Yeah, that one would be cool, but it depends on Nick getting his
lockless pagecache upstream. For those who don't know, both are in -rt
(and have been for some time) so it's not unproven code.
On Fri, 26 Oct 2007 17:29:00 +0200
I am. Taking every single reference to a page into account simply
won't scale to systems with 1TB of RAM. This is why I am working
on implementing:http://linux-mm.org/PageReplacementDesign
At the moment I only have the basic "plumbing" of the split VM
working and am fixing some bugs in that. Expect a patch series
with that soon, so you guys can review that code and tell me
where to beat it into shape some more :)After that I will work on the policy bits, where we can really
get performance benefits. The patch series should be mergeable
in smaller increments, so we can take things slowly if desired.--
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it." - Brian W. Kernighan
-
