?
Solved

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

Posted on 2004-08-22
4
Medium Priority
?
215 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 35

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 2000 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 35

Author Comment

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

Featured Post

NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

Question has a verified solution.

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

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 …
It is possible to boost certain documents at query time in Solr. Query time boosting can be a powerful resource for finding the most relevant and "best" content. Of course the more information you index, the more fields you will be able to use for y…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…
Suggested Courses
Course of the Month9 days, 4 hours left to enroll

765 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