Solved

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

Posted on 2004-08-22
4
208 Views
Last Modified: 2007-12-19
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
0
Comment
Question by:gr8gonzo
  • 2
4 Comments
 
LVL 34

Author Comment

by:gr8gonzo
ID: 11865332
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
0
 
LVL 51

Accepted Solution

by:
ahoffmann earned 500 total points
ID: 11865389
> This program is accessed about 6-10 times every second.
> noticed that the ad.pl file is suexec-ing
both are performance bottlenecks, you should think about a solution where your CGI uses persistent connections to mysql, or a connection pool. ALso try to get rid of the suexec (if possible).
You either need something like fastCGi, or write a small perl script which connects to mysql permanently and servers the request from your ad.pl (which then connects to the new script instead of to mysql direct).
0
 
LVL 34

Expert Comment

by:PsiCop
ID: 11865519
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).
0
 
LVL 34

Author Comment

by:gr8gonzo
ID: 11887888
Thanks for the tips!
0

Featured Post

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Over the last year I have answered a couple of basic URL rewriting questions several times so I thought I might as well have a stab at: explaining the basics, providing a few useful links and consolidating some of the most common queries into a sing…
Hi, in this article I'm going to teach you how to run your own site, and how to let people in (without IP). I'll talk about and explain each step... :) By the way, everything in this Tutorial is completely free and legal. This article is for …
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …

829 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question