Link to home
Start Free TrialLog in
Avatar of gr8gonzo
gr8gonzoFlag for United States of America

asked on

Slow Server - LOTS of processes - sugg. for speedups?

My server is running Apache 1.3.27. I have a perl program called ad.pl that sits in a cgi-bin directory. It is called from a remote web page like this:

<IFRAME SRC="http://my server/cgi-bin/ad.pl?some_arguments"></IFRAME>

This program is accessed about 6-10 times every second.

The program connects to MySQL, does a couple lookups, returns some data, and finishes. However, it seems like Apache and Perl are the bottlenecks here. If I run a ps -aux, I get about 100-150 of these Apache processes:

apache   13038  0.0  0.8 82972 4040 ?        S    14:50   0:00 /usr/sbin/httpd -f /etc/httpd/conf/httpd_app.conf -DSSL -DSSL.default -D product_wp_module -D vwh_frontpage_module -D vwh_httpd_defines_module -D vwh_httpdmon_module -D vwh_perl_module -D vwh_php4_module

then there's about 10 MySQL processes, and then about 90 or so of these Perl processes:

admin3   24012  0.0  0.6  4296 3072 ?        R    15:08   0:00 /usr/bin/perl -w ad.pl

MySQL is running on the my-medium.cnf configuration.

Can anyone offer some additional tips on speeding up Apache and Perl? (One thing that I noticed is that when PHP files run, they don't spawn a bunch of PHP executable processes like /usr/bin/php (like Perl is doing). This is a client's server, so I don't know EXACTLY how the server is set up, but I have a good idea. Thanks in advance!

- Jonathan
Avatar of gr8gonzo
gr8gonzo
Flag of United States of America image

ASKER

One more thing - I also noticed that the ad.pl file is suexec-ing (since it is run from a non-privileged account called admin3). I don't know how much that affects speed, or if it can be circumvented (not sure why it needs to suexec in the first place)...

- Jonathan
ASKER CERTIFIED SOLUTION
Avatar of ahoffmann
ahoffmann
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Yes, suexec IS a potential security hole. Eliminate it if at all possible.

Launching Perl processes is expensive (in terms of computing power). This is why some Perl-intensive applications (MIMEdefang, for example) use a multiplexor to create a number of reusable Perl sessions. You need to do something like this (to which ahoffman alluded above).
Thanks for the tips!