I for the past couple months I've been noticing a sluggish response with Apache
on my main server. This only started happening when I started getting 150,000
or so hits/day. Knowing that a Tyan S1668 Dual PPro w/ 128mb ram should easily
be able to handle several times that ammount I started searching for a problem.
With the help of the Linux/Byte Benchmark suite for unix systems I think I've
pin-pointed a problem with my exec() function. Here are stats from my system:
BYTE UNIX Benchmarks (Version 3.11)
System -- Linux news 2.0.29 #5 Mon Mar 31 04:11:03 CST 1997 i686 unknown
Start Benchmark Run: Mon Mar 31 05:16:13 CST 1997
2 interactive users.
[stuff snipped]
System Call Overhead Test 36162.8 lps (10 secs, 6 samples)
Pipe Throughput Test 59084.2 lps (10 secs, 6 samples)
Pipe-based Context Switching Test 24296.4 lps (10 secs, 6 samples)
Process Creation Test 1789.7 lps (10 secs, 6 samples)
Execl Throughput Test 235.4 lps (9 secs, 6 samples)
[stuff snipped]
I tested this out on all of my systems (all Tyan S1668, PPro, 128mbram, kernels
2.0.27 through 2.0.29) with the following ccflags:
CFLAGS=-DTIME -m486 -funroll-loops -finline -fstrength-reduce -ffast-math -fomit-frame-pointer -O3
Now, I have seen results (posted on www.linuxnow.com and several other places for other systems
even P5 systems) that are running approx 2000-3000 lps for Execl throughput and a little higher
process creation tests. System in this case is not under load (0.0).
I have upgraded all core libraries/code (ld.so 1.9.1, binutils.2.7.0.9, gcc-2.7.2.1, libg++-2.7.2.1,
libc-5.4.23, kernel (2.0.29), et al. No difference before or after nor across any of my other
systems.
Does anyone have any idea WHY this is happening, or WHAT could cause this? I have 'patched'
my original problem with apache by playing with the lifespan of the spawned tasks but this is
still an issue why I'm only getting 1/10th the throughput here.
Stephen
-- "There are two types of light, the glow that illuminates, and the glare that obscures." -- James Thurber