Date: Thu, 7 Mar 2002 11:12:03 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: "Rogier R. Mulhuijzen" <drwilco@drwilco.net>, Mike Silbersack <silby@silby.com>, Tom <bifrost@minions.com>, Dimitar Peikov <mitko@rila.bg>, cjp <cjp@sandstorm.net>, <freebsd-hackers@FreeBSD.ORG> Subject: Re: Swapping performance Message-ID: <200203071912.g27JC3A68645@apollo.backplane.com> References: <20020307095452.D18855-100000@frond.minions.com> <5.1.0.14.0.20020307193205.01c3b0f0@mail.drwilco.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Hmm. well, I don't think this test is very meaningful. If the machines
have 256M of ram and the test is doing a two-swipe access of 256M of VM.
This doesn't represent any real test and I would not be surprised by
the difference in timing.
It all comes down to how much real memory Linux and FreeBSD give to the
process and there is no right answer to the question because it's a
tradeoff. An OS does not magically know that only one process will
ever need all of the machine's resources, for example, so different
operating systems are going to have very different characteristics under
these sorts of conditions. One might give over more memory, another
might want to avoid completely blowing away its other caches. One might
work well for linux in a one-process memory test could fail miserably
in a multi-process memory test, for example, or with a different pattern
of memory accesses, or a different load split between cpu, memory,
and disk I/O.
You (Dimitar and others) also need to be careful about making broad
generalizations. Testing pure swapping performance with the below
program implies that you intend to run applications that will need to
swap heavily (for example, big mathmatical applications). If you don't
intend to run applications that will need to swap heavily then this
test is fairly meaningless as a measure of performance.
Another point that I should bring up in regards to swap performance:
systems that require good swap performance will almost always have
more then one physical disk to swap to. FreeBSD is very good at
paging to swap with a single disk, but it kicks ass paging to swap
with multiple disks because it implements a very good interleaving
algorithm.
-Matt
Matthew Dillon
<dillon@backplane.com>
:Am I the only one who saw that he attached it to his 1st mail?
:
:Here you go:
:
:#include <stdlib.h>
:#include <string.h>
:#include <stdio.h>
:
:#define MALLOC_SIZE 1024*1024*256
:
:int main(int argc, char **argv) {
: char *ptr;
: int i, i_count;
: int j;
:
: ptr = (char *) malloc(MALLOC_SIZE);
: bzero(ptr, MALLOC_SIZE);
:
: i_count = MALLOC_SIZE / 16;
: fprintf(stderr, "*");
: for (i = 0; i < i_count; i ++) {
: ptr[i >> 4] = ptr[(i >> 3) + 1]++;
: }
: fprintf(stderr, "#");
: for (j = 0; j < i_count; j ++) {
: ptr[j << 4] = ptr[(j >> 3) + 1]++;
: }
:
: free(ptr);
: return 0;
:}
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200203071912.g27JC3A68645>
