[Catalyst] DProf

Octavian Rasnita orasnita at gmail.com
Sat Nov 3 14:01:07 GMT 2007


From: "Jon Schutz" <jon+catalyst at youramigo.com>

> If benchmark testing isn't showing the fault, it's likely that it is
> data-dependent, i.e. it depends on something in the request or response
> - something that the benchmark doesn't trigger.
>
> Perhaps clients are left lingering - an incorrect Content-Length could
> cause that.  I've also seen apache get stuck in busy wait states when
> proxying through to a remote site that is not responding correctly.
> Your top output is very likely an indication that some requests are not
> being served to completion.

I've tried to put ab to run more concurent connections in order to check how 
occupied will be the processor, and with:

ab -n 1000 -t 1000 -c 35 [URL]

the processor was occupied sometimes 4 to 9% and sometimes 49 to 80%. Now is 
weekend, and there are very very few visitors on my site, and I can assume 
that my requests were the only requests, so no other strange requests target 
my server.

> You could try (as root)
>
> netstat -nap | grep http

I've tried and the latests results are below the message, but I can't 
interpret them. I am not a very good Linux user unfortunately.

> to see what network connections the httpd processes are holding open.
>
> lsof may also tell you something useful.

I have also ran that command and grepped the results that contain "http" and 
from all the results ~ 5000, aproximately 4000 contain "http".

> Try attaching an strace to one of the busy httpds to see what system
> calls it is doing.
>
> The difficulty with the mod_perl environment is that your httpd
> processes are polluted with everything else that is happening on your
> server - PHP etc - so what perl is responsible for is obscured.  Testing
> in a fastcgi environment is better in this respect since perl and apache
> are separated.  If you are able to try fastcgi, it might reveal some
> further insights.

I have never used FastCGI so for the moment I am not able to try it right 
now.

Here is the result of netstat -nap | grep http

tcp        0      0 :::80                       :::* 
LISTEN      4069/httpd
tcp        0      0 :::443                      :::* 
LISTEN      4069/httpd
tcp        0   5823 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2930 
FIN_WAIT1   4554/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2941 
FIN_WAIT2   4502/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2943 
FIN_WAIT2   4498/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2942 
FIN_WAIT2   4475/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2936 
FIN_WAIT2   4501/httpd
tcp        0   8743 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2939 
FIN_WAIT1   4506/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2920 
FIN_WAIT2   4555/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2893 
FIN_WAIT2   4488/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2892 
FIN_WAIT2   4553/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2949 
FIN_WAIT2   4522/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2948 
FIN_WAIT2   4531/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2951 
FIN_WAIT2   4527/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2950 
FIN_WAIT2   4528/httpd
tcp        0   8743 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2945 
FIN_WAIT1   4532/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2944 
FIN_WAIT2   4545/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2947 
FIN_WAIT2   4534/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2946 
FIN_WAIT2   4480/httpd
tcp        0      0 ::ffff:81.196.156.249:80    ::ffff:81.180.162.194:2952 
FIN_WAIT2   4558/httpd
unix  3      [ ]         STREAM     CONNECTED     19581118 4558/httpd
unix  3      [ ]         STREAM     CONNECTED     19581114 4554/httpd
unix  3      [ ]         STREAM     CONNECTED     19581055 4555/httpd
unix  3      [ ]         STREAM     CONNECTED     19581035 4553/httpd
unix  3      [ ]         STREAM     CONNECTED     19580355 4545/httpd
unix  3      [ ]         STREAM     CONNECTED     19579178 4534/httpd
unix  3      [ ]         STREAM     CONNECTED     19579165 4532/httpd
unix  3      [ ]         STREAM     CONNECTED     19579161 4531/httpd
unix  3      [ ]         STREAM     CONNECTED     19578452 4528/httpd
unix  3      [ ]         STREAM     CONNECTED     19578450 4527/httpd
unix  3      [ ]         STREAM     CONNECTED     19577652 4522/httpd
unix  3      [ ]         STREAM     CONNECTED     19577325 4506/httpd
unix  3      [ ]         STREAM     CONNECTED     19577269 4502/httpd
unix  3      [ ]         STREAM     CONNECTED     19577265 4501/httpd
unix  3      [ ]         STREAM     CONNECTED     19577203 4498/httpd
unix  3      [ ]         STREAM     CONNECTED     19577086 4488/httpd
unix  3      [ ]         STREAM     CONNECTED     19577025 4480/httpd
unix  3      [ ]         STREAM     CONNECTED     19577009 4475/httpd

Thank you.

Octavian




More information about the Catalyst mailing list