Hi all,
My mod_perl web app uses memcached to cache most of the (MySQL) database
query results and as the session storage (Apache::Session::Memcached). When
doing performance tests with httperf, I found that apache processes waits
for each other. I mean: all requests are accepted (apache forks off lots of
children), then processed (no process finishes), and after a while, all the
processes finish almost at the same time...
If I put warns in the apache handler's start and end, it gives this output
(edited for brevity, md5 hash in the end is the session ids, just disregard
them):
... output from 90+ of other warns...
Start process 30324: Tue, 16 Aug 2005 11:00:23
EST,af263d03f531584c4d05c7f3df55c7d4
Start process 30326: Tue, 16 Aug 2005 11:00:23
EST,931f8a3a2de409fb3285c3bd038ec7b6
Start process 30325: Tue, 16 Aug 2005 11:00:23
EST,48ca7271dab9037f3a7426a6a68789e5
Start process 30314: Tue, 16 Aug 2005 11:00:23
EST,259709a683879491498cb81055466948
... after a while, suddenly the following output comes out ...
End process 29803: Tue, 16 Aug 2005 11:05:47
EST,dc7e7c893f0ee15b0b6c94d061f9493c
End process 30337: Tue, 16 Aug 2005 11:05:49
EST,73f520865a13715e02d183c5cbb920d4
End process 30002: Tue, 16 Aug 2005 11:05:49
EST,cbfb00260afade004d3cc3086f425272
End process 30003: Tue, 16 Aug 2005 11:05:51
EST,b84da97b68df5f54e336a7767d64a1f8
... output of other 90+ warns ...
It's like they are not processed concurrently. I wonder why does it happen?
Is it memcached? Or is it how apache works? Or is it because of the
benchmarking application that I use?
Thanks...
---
Badai Aqrandista
Cheepy (?)
_________________________________________________________________
SEEK: Over 80,000 jobs across all industries at Australia's #1 job site.
http://ninemsn.seek.com.au?hotmail