Sorry for the delay, but i've strace'd both apache 1.3 and 2.0 (prefork) as you asked : I traced all 5 childs, because i didnt know which one he was going to use : Here is the output for apache 1.3.24
-------------------------- select(19, [16 17 18], NULL, NULL, NULL) = 1 (in [16]) accept(16, {sin_family=AF_INET, sin_port=htons(42269), sin_addr=inet_addr("192.168.1.253")}}, [16]) = 4 semop(2064384, 0x80b52d6, 1) = 0 rt_sigaction(SIGUSR1, {SIG_IGN}, {0x8060f54, [], SA_INTERRUPT|0x4000000}, 8) = 0 getsockname(4, {sin_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("192.168.1.253")}}, [16]) = 0 setsockopt(4, IPPROTO_TCP1, [1], 4) = 0 brk(0x80e3000) = 0x80e3000 brk(0x80e6000) = 0x80e6000 read(4, "GET /test.txt HTTP/1.0\r\nUser-Age"..., 4096) = 92 rt_sigaction(SIGUSR1, {SIG_IGN}, {SIG_IGN}, 8) = 0 time(NULL) = 1018386787 stat("/iVision/users/i-vision/main/htdocs/test.txt", {st_mode=S_IFREG|0644, st_size=13924, ...}) = 0 open("/iVision/users/i-vision/main/htdocs/test.txt", O_RDONLY) = 5 old_mmap(NULL, 13924, PROT_READ, MAP_PRIVATE, 5, 0) = 0x40371000 writev(4, [{"HTTP/1.1 200 OK\r\nDate: Tue, 09 A"..., 251}, {"Dit is een test van de domme web"..., 13924}], $ close(5) = 0 time(NULL) = 1018386787 write(19, "192.168.1.253 - - [09/Apr/2002:2"..., 82) = 82 shutdown(4, 1 /* send */) = 0 select(5, [4], NULL, NULL, {2, 0}) = 1 (in [4], left {2, 0}) read(4, "", 512) = 0 close(4) = 0 rt_sigaction(SIGUSR1, {0x8060f54, [], SA_INTERRUPT|0x4000000}, {SIG_IGN}, 8) = 0 munmap(0x40371000, 13924) = 0 semop(2064384, 0x80b52d0, 1 -------------------- The next pid : ------------------- semop(2064384, 0x80b52d0, 1) = 0 select(19, [16 17 18], NULL, NULL, NULL ------------------ all other pid's ------------------ semop(2064384, 0x80b52d0, 1 ----------------- Now apache 2.0.35 mdm=prefork first child pid : ------------------ poll([{fd=5, events=POLLIN, revents=POLLIN}, {fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 3, -1) = 1 accept(5, {sin_family=AF_INET, sin_port=htons(42268), sin_addr=inet_addr("192.168.1.253")}}, [16]) = 10 semop(2031618, 0x40042922, 1) = 0 gettimeofday({1018386426, 197104}, NULL) = 0 gettimeofday({1018386426, 197173}, NULL) = 0 brk(0x81b4000) = 0x81b4000 fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 read(10, 0x81b1190, 8000) = -1 EAGAIN (Resource temporarily unavailable) select(11, [10], NULL, NULL, {300, 0}) = 1 (in [10], left {300, 0}) read(10, "GET /test.txt HTTP/1.0\r\nUser-Age"..., 8000) = 92 gettimeofday({1018386426, 197988}, NULL) = 0 gettimeofday({1018386426, 198146}, NULL) = 0 stat("/iVision/users/i-vision/main/htdocs/test.txt", {st_mode=S_IFREG|0644, st_size=13924, ...}) = 0 open("/iVision/users/i-vision/main/htdocs/test.txt", O_RDONLY) = 11 open("/etc/localtime", O_RDONLY) = 12 read(12, "TZif\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n\0\0\0\n\0"..., 44) = 44 read(12, "\230DI\200\233\f%p\233\325\332\360\234\331\256\220\235"..., 925) = 925 fstat(12, {st_mode=S_IFREG|0644, st_size=1067, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40043000 read(12, "\0\0\0\0\0\0\0\0\16\20\0\4\0\0\34 \1\10\0\0\16\20\0\4\0"..., 4096) = 98 close(12) = 0 munmap(0x40043000, 4096) = 0 brk(0x81b7000) = 0x81b7000 setsockopt(10, IPPROTO_TCP1, [0], 4) = 0 setsockopt(10, IPPROTO_TCP3, [1], 4) = 0 writev(10, [{"HTTP/1.1 200 OK\r\nDate: Tue, 09 A"..., 306}], 1) = 306 sendfile(10, 11, [0], 13924) = 13924 setsockopt(10, IPPROTO_TCP3, [0], 4) = 0 setsockopt(10, IPPROTO_TCP1, [1], 4) = 0 write(6, "192.168.1.253 - - [09/Apr/2002:2"..., 107) = 107 times({tms_utime=1, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 2769909 gettimeofday({1018386426, 200199}, NULL) = 0 shutdown(10, 1 /* send */) = 0 select(11, [10], NULL, NULL, {2, 0}) = 1 (in [10], left {2, 0}) read(10, "", 512) = 0 close(10) = 0 read(7, 0xbffff6a7, 1) = -1 EAGAIN (Resource temporarily unavailable) close(11) = 0 gettimeofday({1018386426, 201081}, NULL) = 0 semop(2031618, 0x4004291c, 1 <unfinished ...> ------------------------------ next pid ---------------------------- semop(2031618, 0x4004291c, 1) = 0 poll( <unfinished ...> -------------------------------- all other pids : ------------------------------ semop(2031618, 0x4004291c, 1 <unfinished ...> --------------- I really dont have a clue about what this means, but probably you do :) Would it help if you had remote access to the server so you can see for yourself ? Nick ----- Original Message ----- From: "Brian Pane" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, April 09, 2002 6:37 PM Subject: Re: slow apache 2.0 > Nick De Decker wrote: > > >Hello again, > > > >I was just getting frustrated after days of testing. > > > >Hardware : Amd duron 1000, 512 mb scdram (133 mhz) udma100 disk. > >Running trustix secure linux 1.5. kernel 2.4.18 (however tests are the same > >with 2.2 kernels and 2.4.17) > > > >Yesterday i tested with mpm=worker settings: > >I've used default worker settings, then changed each and overy one of them > >but the problem remains : when the number of concurrent users exceeds > >(ThreadsPerChild +1) the number of requests per second drops drastically. > >(when concurrent users < ThreadsPerChild i get 1000 requests per second, if > >higher only 50 requests :( > > > > If you're willing to do some more data collection, the > next step that I recommend is to collect a system call > trace for oth 1.3 and 2.0 (with the prefork MPM for the > latter): > > strace -o [output file] -p [pid of one httpd child process] > > and run "ab -n1 -c1 [your test URL]" and post the output for > 1.3 and 2.0. > > Thanks, > --Brian > > >