httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nick De Decker" <n...@i-vision.be>
Subject Re: slow apache 2.0
Date Tue, 09 Apr 2002 22:33:49 GMT
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" <bpane@pacbell.net>
To: <dev@httpd.apache.org>
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
>
>
>



Mime
View raw message