Re: [2.4.17/18pre] VM and swap - it's really unusable

M.H.VanLeeuwen
2002-01-08T04:00:45Z

[-- Attachment #1: Type: text/plain, Size: 2760 bytes --]

On Mon, 7 Jan 2002 00:22:09 -0200 (BRST)
Rik van Riel <riel@conectiva.com.br> wrote:

> On Sun, 6 Jan 2002, Rik van Riel wrote:
> > On Sat, 5 Jan 2002, Stephan von Krawczynski wrote:
> >
> > > I am pretty impressed by Martins test case where merely all VM patches
> > > fail with the exception of his own :-)
> >
> > No big wonder if both -aa and -rmap only get tested without swap ;)
>
> To be clear ... -aa and -rmap should of course also work
> nicely without swap, no excuses for the bad behaviour
> shown in Martin's test, but at the moment they simply
> don't seem tuned for it.

Hi Rik,

My original goal was to find a VM that worked well w/o swap, not to show how each
one acted with and without swap. Failing to find what I thought satisfactory I
started my venture into VM by grepping the source for "Out of Memory:" and worked
backwards from there not so very too long ago...

I did not swap test any VM until asked how my patch benched w/ respect to
stock kernel w/ swap; others weren't left out intentionally I just never was asked.

Now that you "implied ;)" that it would be nice to see what other VM solutions look
like with my test case i've attached an updated "boring column of numbers".

Here is how I would rank current VM options w/ respect to the _one_ test case I run.
(Stephan has asked for an NFS server variant w/ my patch but I haven't tested it yet)

1st 2nd 3rd 4th
w/o swap MH AA STOCK RMAP (ranked on VM pressure)
w/ swap AA STOCK MH RMAP (ranked on sys time)

Observations:

a. rmap 10c, failed earlier than stock kernel thus doesn't qualify for use in my "no
swap" systems and it is still undergoing change and isn't mainline kernel yet; will
revisit at intervals.
b. rc2aa2, while much better than stock has unexpected behaviour(s) I didn't like.
Namely, the konsole window running the tests was gone and KDE task bar were missing
as well as some other windows and there was no indication by the kernel these
processes were killed, only "VM: killing process cc1" and a few 0 order allocation
failures (or something like that) at the end of the test.
c. mh patch probably doesn't swap enough but thus far there have been no bad reports
that can be directly attributed to this rather small change to vmscan.c
1. it works well under extreme VM pressure
2. it's performance is on par with the stock kernel and aa2

I glanced at rc2aa2 and it seems to be doing essentially what my patch does with a _lot_
of extra knobs some of which I don't like and I think I know why rc2aa2 doesn't perform
quite as well under extreme pressure but I don't have the luxury of time to [dis]prove
my ideas yet.

Haven't looked at rmap code yet...

Martin

[-- Attachment #2: build.stats --]
[-- Type: application/octet-stream, Size: 5882 bytes --]

System: SMP 466 Celeron 192M RAM

Each run after clean & cache builds has 1 more setiathome client running upto a
max if 8 seti clients. No, this isn't my normal way of running setiathome, but
each instance uses a nice chunk of memory.

Note: this is a single run for each of the columns so results show for the
load I was running the number are not significantly different.

Observations:

a. rmap 10c, failed earlier than stock kernel thus doesn't qualify for use in my "no swap" systems
b. rc2aa2, while much better than stock has unexpected behaviour(s) I didn't like. namely, the
konsole window running the tests was gone and KDE task bar were missing as well as some other
windows and there was no indication by the kernel why these processes were killed.

STOCK KERNEL MH KERNEL STOCK MH KERNEL RMAP 10c RMAP 10c RC2AA2 RC2AA2
(no swap) (no swap) W/ SWAP W/ SWAP (no swap) W/ SWAP (no swap) W/ SWAP

CLEAN
BUILD real 7m19.428s 7m19.546s 7m26.852s 7m26.256s 7m46.760s 7m34.735s 7m17.698s 7m29.714s
user 12m53.640s 12m50.550s 12m53.740s 12m47.110s 13m2.420s 12m53.210s 12m33.440s 12m59.140s
sys 0m47.890s 0m54.960s 0m58.810s 1m1.090s 1m7.890s 1m0.650s 0m53.790s 0m58.270s
1.1M swp 0M swp 0M swp 0M swp

CACHE
BUILD real 7m3.823s 7m3.520s 7m4.040s 7m4.266s 7m16.386s 7m13.138s 7m3.209s 7m6.187s
user 12m47.710s 12m49.110s 12m47.640s 12m40.120s 12m56.390s 12m53.300s 12m46.200s 12m55.230s
sys 0m46.660s 0m46.270s 0m47.480s 0m51.440s 0m55.200s 0m55.390s 0m46.450s 0m48.290s
1.1M swp 0M swp 0M swp 0M swp

SETI 1
real 9m51.652s 9m50.601s 9m53.153s 9m53.668s 10m8.933s 10m6.033s 9m51.954s 9m55.340s
user 13m5.250s 13m4.420s 13m5.040s 13m4.470s 13m16.040s 13m14.250s 13m19.310s 12m57.600s
sys 0m49.020s 0m50.460s 0m51.190s 0m50.580s 1m1.080s 1m0.950s 0m51.800s 0m49.040s
1.1M swp 0M swp 0.4M swp 0M swp

SETI 2
real 13m9.730s 13m7.719s 13m4.279s 13m4.768s OOM KILLED 13m14.670s 13m13.181s 13m15.186s
user 13m16.810s 13m15.150s 13m15.950s 13m13.400s kdeinit 13m15.520s 13m0.640s 13m8.660s
sys 0m50.880s 0m50.460s 0m50.930s 0m52.520s 1m1.200s 0m48.840s 0m51.060s
5.8M swp 1.9M swp 0.9M swp 1.3M swp

SETI 3
real 15m49.331s 15m41.264s 15m40.828s 15m45.551s NA 15m26.117s 15m52.202s 15m56.378s
user 13m22.150s 13m21.560s 13m14.390s 13m20.790s 12m57.290s 13m21.650s 13m14.560s
sys 0m49.250s 0m49.910s 0m49.850s 0m50.910s 0m56.370s 0m52.410s 0m51.750s
16.2M swp 3.1M swp 1.1M swp 8.3M swp

SETI 4
real OOM KILLED 19m8.435s 19m5.584s 19m3.618s NA 18m31.510s 19m24.081s 19m24.793s
user kdeinit 13m24.570s 13m24.000s 13m22.520s 12m55.150s 13m20.140s 13m22.950s
sys 0m51.430s 0m50.320s 0m51.390s 0m56.810s 0m52.810s 0m51.580s
18.7M swp 8.3M swp 14.0M swp 13.5M swp

SETI 5
real NA 21m35.515s 21m48.543s 22m0.240s NA 21m6.017s 22m10.033s 22m11.423s
user 13m9.680s 13m22.030s 13m28.820s 12m53.780s 13m12.740s 13m21.710s
sys 0m49.910s 0m50.850s 0m52.270s 0m55.390s 0m52.180s 0m51.000s
31.7M swp 11.3M swp 31.3M swp 25.5M swp

SETI 6
real NA 24m37.167s 25m5.244s 25m13.429s NA 24m31.754s 25m25.686s 25m38.008s
user 13m7.650s 13m26.590s 13m32.640s 13m6.140s 13m21.610s 13m32.990s
sys 0m51.390s 0m51.260s 0m52.790s 0m57.030s 0m49.590s 0m51.340s
35.3M swp 17.1M swp 31.6M swp 35.2M swp

SETI 7
real NA 28m40.446s 28m3.612s 28m12.981s NA 27m54.023s VM: killing 28m28.160s
user 13m16.460s 13m26.130s 13m31.520s 13m19.050s process cc1 13m25.380s
sys 0m57.940s 0m52.510s 0m53.570s 0m58.970s 0m50.240s
38.8M swp 25.4M swp 36.5M swp 38.7M swp

SETI 8
real NA 29m31.743s 31m16.275s 32m29.534s NA 31m28.223s NA 31m37.584s
user 13m37.610s 13m27.740s 13m33.630s 13m28.740s 13m28.190s
sys 1m4.450s 0m52.100s 0m54.140s 1m0.630s 0m50.910s
41.5M swp 49.7M swp 53.8M swp 41.2M swp