Re: Benchmarking objrmap under memory pressure

Andrea Arcangeli
2004-04-14T16:28:00Z

On Tue, Apr 13, 2004 at 05:38:02PM -0700, Martin J. Bligh wrote:
> >> UP Athlon 2100+ with 512Mb of RAM. Rebooted clean before each test
> >> then did "make clean; make vmlinux; make clean". Then I timed a
> >> "make -j 256 vmlinux" to get some testing under mem pressure.
> >>
> >> I was trying to test the overhead of objrmap under memory pressure,
> >> but it seems it's actually distinctly negative overhead - rather pleasing
> >> really ;-)
> >>
> >> 2.6.5
> >> 225.18user 30.05system 6:33.72elapsed 64%CPU (0avgtext+0avgdata 0maxresident)k
> >> 0inputs+0outputs (37590major+2604444minor)pagefaults 0swaps
> >>
> >> 2.6.5-anon_mm
> >> 224.53user 26.00system 5:29.08elapsed 76%CPU (0avgtext+0avgdata 0maxresident)k
> >> 0inputs+0outputs (29127major+2577211minor)pagefaults 0swaps
> >
> > A four second reduction in system time caused a one minute reduction in
> > runtime? Pull the other one ;)
> >
> > Average of five runs, please...
>
> You're right - it's rather variable. Still doesn't look bad though.
>
> 2.6.5
> Average elapsed = 6:11
> 224.92user 30.15system 5:44.19elapsed 74%CPU (0avgtext+0avgdata 0maxresident)k
> 225.04user 30.23system 6:02.49elapsed 70%CPU (0avgtext+0avgdata 0maxresident)k
> 225.28user 29.60system 5:48.22elapsed 73%CPU (0avgtext+0avgdata 0maxresident)k
> 225.81user 31.75system 6:42.38elapsed 64%CPU (0avgtext+0avgdata 0maxresident)k
> 225.23user 30.20system 6:40.48elapsed 63%CPU (0avgtext+0avgdata 0maxresident)k
>
> 2.6.5-anon_mm
> Average elapsed = 5:43
> 224.34user 25.43system 4:51.23elapsed 85%CPU (0avgtext+0avgdata 0maxresident)k
> 224.23user 25.93system 5:00.79elapsed 83%CPU (0avgtext+0avgdata 0maxresident)k
> 224.39user 26.36system 5:37.71elapsed 74%CPU (0avgtext+0avgdata 0maxresident)k
> 225.65user 27.13system 6:28.00elapsed 65%CPU (0avgtext+0avgdata 0maxresident)k
> 225.14user 27.26system 6:39.61elapsed 63%CPU (0avgtext+0avgdata 0maxresident)k
>
> I've kicked off the -aa tree tests - will post them later tonight.

As expected the 6 second difference was nothing compared the the noise,
though I'd be curious to see an average number.

the degradation of runtimes is interesting, runtimes should go downs not
up after more unused stuff is pushed into swap and so more ram is free
at every new start of the workload.

BTW, I've no idea idea why you used an UP machine for this, (plus if you
can load kde on it it'd be better because kde is extremely smart at
optimizing the ram usage with cow anonymous memory, the thing anon-vma
can optimize and anonmm not, plus kde may use even mremap on this
anonymous ram, and the very single reason it was impossible for me to
take anonmm in production is that there's no way I can preodict which
critical app is using mremap on anonymous COW memory to save ram). You
definitely should use your 32-way booted with mem=512m to run this test
or there's no way you'll ever botice the additional boost in scalability
that anon-vma provides compared to anonmm, and that anonmm will never be
able to reach.