we were doing some WWW-server performance testing today, and I watched
something that really confused me...
First, the scenario:
Linux 2.0.27 client machine, Pentium-100, PCI network card 10 Mbit, AMD
chipset based, 10 BaseT network with only two machines and *no* other
traffic.
Linux PC starts a process, which fork()s a 100 times. 100 parallel
process now. They do no more than "connect( remote_host, port 80 )",
get the home page ("GET / HTTP/1.0"), increase a counter. After 5
minutes, the processes all terminate, and write the number of successful
requests to a log file.
Server PC is a PentiumPRO 200, running WinNT and MSIE NT server (I'm
doing a comparison for a magazine, the Linux/Unix test was last month!).
Now, what is happening is this: the throughput is extremely "sluggish". If
I look at the 10BaseT Ethernet hub, what I observe is this:
<fast blinking of LEDs for both machines, some collisions> - ~ 1 sec.
<PAUSE - all traffic LEDs dead> - ~ 3 sec.
<fast blinking ... > - about 1 Seconds
<PAUSE> - about 3 Seconds
*and so on*
The "performance meter" on the WinNT side shows the "number of HTTP
requests" as a series of spikes, in the same rhythm as the Ethernet HUB.
The rhythm is *very* regular, both "watching the net" and on the
performance meter.
Ok, my first thought was: "this network is too slow".
So we put a 3Com 3c595TX 100Mbit card in the Linux PC, 100Mbit 3c905 card
in the NT server, got a second NT server with a DECchip 100 Mbit card, and
tried again:
*SAME EFFECT* -- blinkblink - PAUSE - blinkblink - PAUSE - blinkblink...
Getting desperate, I put SCO Unix 5.0.2 on the Client PC, instead of
Linux.
*EFFECT DISAPPEARED COMPLETELY*!!!
The network performance alltogether was a bit slower than on the Linux PC,
but it was steady. Fast blinking on the network hub, no pauses at all,
near-to-no spikes in the NT "performance meter".
Now... has anybody of you *any* idea what is happening here? I've searched
the Kernel sources for something like "we have seen too many collisions,
let's back off and try again in a couple of seconds" or so, but couldn't
find anything.
With Linux it happens with two different network cards, on 10 and 100 Mbit
Ethernets, with SCO Unix, it does *not* happen (same PC otherwise, P100
on an ASUS TP55X4 (?) Triton board, BusLogic PCI SCSI controller, nothing
else going on during the tests).
... being *very* confused...
gert
PS: If there's anything I should try and send you the outcome, just tell
me. After all, I wouldn't like to write "this time, we couldn't use the
Linux client machine, because it behaved completely erratically"... :-/
-- email: gert@greenie.muc.de fax: +49-89-3244814 http://www.leo.org/~doeringYour friends will know you better in the first minute you meet than your acquaintances will know you in a thousand years. -- Richard Bach