You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Middle Fork GIS <mi...@gmail.com> on 2009/09/23 22:40:26 UTC
[users@httpd] Apace2 stops serving pages.
Hi, I am a brand new user to this forum though I've been successfully
managing (low volume) Apache Servers for a number of years now. The reason
I'm here today is that periodically, though apparently (?) at random
intervals, Apache stops serving pages.
Using wget from the server host:
# wget hipcodes.com
--2009-09-23 14:32:15-- http://hipcodes.com/
Resolving hipcodes.com... 72.249.77.11
Connecting to hipcodes.com|72.249.77.11|:80... connected.
HTTP request sent, awaiting response...
And there it sits until the server is started; likewise from a remote
browser, the page is never delivered. Nothing appears in Apache's log,
even when set to the most verbose 'INFO' level.
Apache is NOT pegging the CPU: CPU usage will show close to 0% and the load
average will show close to zero as well. Apache is not hogging the memory,
very little memory usage is shown.
Apache2.2.13-1
VPS running: Debian: 2.6.18-028stab062.3 #1 SMP Thu Mar 26 14:46:38 MSK
2009 i686 GNU/Linux
Traffic is around 10,000 hits/day, a combination of static files, PHP, AJAX,
from an interactive mapping program named Ka-Map! (similar to G**gle Maps,
et al), with queries against a PostgreSQL/PostGIS database backend.
I had the (I think) exact same configuration running on a similar VPS for
over a year and this never happened, as far as I can tell.
What I have done so far (all to no effect):
enable/disable mpm_prefork
increase/decrease MaxSpareServers as high as 250
enable/disable KeepAlive
disable as many additional modules as possible.
The apache2.conf currently looks like this:
ServerRoot "/etc/apache2"
LockFile /var/lock/apache2/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive Off
MaxKeepAliveRequests 50
KeepAliveTimeout 2
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 50
MaxClients 250
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 10
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 250
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 10
MaxClients 250
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
DefaultType text/plain
HostnameLookups Off
ErrorLog /var/log/apache2/error.log
LogLevel debug
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\"
\"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\""
combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/
More information needed?
Any tips?
Tests I can perform?
Thanks in advance.
Steve Walker
middleforkgis aht gmail.com
Re: [users@httpd] Re: Apace2 stops serving pages.
Posted by Middle Fork GIS <mi...@gmail.com>.
Argh it happened again overnite.
I checked in first thing this morning and Apache had been hung for 8
bleeding hours. Zero pages served in all that time. Postgresql did not
seem to be at fault. my query against it worked fine. Also, all of my
queries are SELECT, so they are non-exclusive and shouldn't result in any
locks.
Also, when it hangs, NO requests get through, even those to static html
files.
I did note that all 250 of the spawned apache processes were still alive.
On Wed, Sep 23, 2009 at 5:13 PM, Nicholas Sherlock <n....@gmail.com>wrote:
> Middle Fork GIS wrote:
>
>> [...] at random intervals, Apache stops serving pages.
>>
>> HTTP request sent, awaiting response...
>>
>> And there it sits until the server is started; likewise from a remote
>> browser, the page is never delivered. Nothing appears in Apache's log,
>> even when set to the most verbose 'INFO' level.
>>
>
> The log is only written once the page has been served, so that isn't
> surprising.
>
> Apache is NOT pegging the CPU: CPU usage will show close to 0% and the
>> load average will show close to zero as well. Apache is not hogging the
>> memory, very little memory usage is shown.
>>
>
> I'd take a look at your database. If one query locks all the important
> tables, then runs for minutes and minutes, every other query will block
> waiting for it. This will quickly fill up your Apache connection limit with
> people waiting for their response to be delivered. Eventually, the bad query
> times out and everything goes back to normal.
>
> On MySQL, this would be diagnosed with a quick "SHOW PROCESSLIST", I'm not
> sure about PostgreSQL though.
>
> Cheers,
> Nicholas Sherlock
>
>
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
> " from the digest: users-digest-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org
>
>
[users@httpd] Re: Apace2 stops serving pages.
Posted by Nicholas Sherlock <n....@gmail.com>.
Middle Fork GIS wrote:
> [...] at random intervals, Apache stops serving pages.
>
> HTTP request sent, awaiting response...
>
> And there it sits until the server is started; likewise from a remote
> browser, the page is never delivered. Nothing appears in Apache's log,
> even when set to the most verbose 'INFO' level.
The log is only written once the page has been served, so that isn't
surprising.
> Apache is NOT pegging the CPU: CPU usage will show close to 0% and the
> load average will show close to zero as well. Apache is not hogging
> the memory, very little memory usage is shown.
I'd take a look at your database. If one query locks all the important
tables, then runs for minutes and minutes, every other query will block
waiting for it. This will quickly fill up your Apache connection limit
with people waiting for their response to be delivered. Eventually, the
bad query times out and everything goes back to normal.
On MySQL, this would be diagnosed with a quick "SHOW PROCESSLIST", I'm
not sure about PostgreSQL though.
Cheers,
Nicholas Sherlock
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org