evilnerds.com
23/08/07, 19:31
Ik draai Debian Sarge met Apache 2.0.45-5 en deze loopt regelmatig vast (paar keer per week). Er kan dan geen connectie meer worden gemaakt op poort 80. Er is zover ik weet geen sprake van overbelasting, de load ligt vrij laag. En ik draai monit om de server vervolgens direct weer te herstarten. Maar het is toch vervelend dat apache er telkens een paar seconden tot 1/2 min uit ligt.
Hoe kan ik de oorzaak van het probleem vinden? /server-status en /server-info kan ik niet opvragen tijdens de crash, en in de logs heb ik tot zover ook niks kunnen vinden. Zijn er nog andere methodes om Apache te debuggen?
debug mode enablen in je config, welke apache config gebruik je?
en welke modules, heb namelijk onder suse dit probleem ook gehad met apache-prefork
evilnerds.com
23/08/07, 21:36
Ik gebruik de volgende packages, met apache2-pmp-prefork en de dotdeb php5 packages:
ii apache-common 1.3.33-6sarge3 support files for all Apache webservers
ii apache2 2.0.54-5sarge1 next generation, scalable, extendable web se
ii apache2-common 2.0.54-5sarge1 next generation, scalable, extendable web se
ii apache2-mpm-pr 2.0.54-5sarge1 traditional model for Apache2
ii apache2-thread 2.0.54-5sarge1 development headers for apache2
ii apache2-utils 2.0.54-5sarge1 utility programs for webservers
ii libapache-mod-php4 4.4.7-0.dotdeb.0 server-side, HTML-embedded scripting language (apache 1.3 module)
rc libapache2-mod-php4 4.4.2-0.dotdeb.1 server-side, HTML-embedded scripting language (apache 2.0 module)
ii libapache2-mod-php5 5.2.3-0.dotdeb.0 server-side, HTML-embedded scripting language (apache 2.0 module)
ii php4 4.4.7-0.dotdeb server-side, HTML-embedded scripting languag
ii php4-cgi 4.4.7-0.dotdeb server-side, HTML-embedded scripting languag
ii php4-common 4.4.7-0.dotdeb Common files for packages built from the php
ii php4-curl 4.4.7-0.dotdeb CURL module for php4
ii php4-domxml 4.4.7-0.dotdeb XMLv2 module for php4
ii php4-gd 4.4.7-0.dotdeb GD module for php4
ii php4-mcrypt 4.4.7-0.dotdeb MCrypt module for php4
ii php4-mysql 4.4.7-0.dotdeb MySQL module for php4
ii php5 5.2.3-0.dotdeb server-side, HTML-embedded scripting languag
ii php5-cli 5.2.3-0.dotdeb command-line interpreter for the php5 script
ii php5-common 5.2.3-0.dotdeb Common files for packages built from the php
ii php5-curl 5.2.3-0.dotdeb CURL module for php5
ii php5-dev 5.2.3-0.dotdeb Files for PHP5 module development
ii php5-gd 5.2.3-0.dotdeb GD module for php5
ii php5-mysql 5.2.3-0.dotdeb MySQL module for php5
ii php5-pear 5.2.0-0.dotdeb PEAR - PHP Extension and Application Reposit
ii php5-snmp 5.2.3-0.dotdeb SNMP module for php5
Server Version: Apache/2.0.54 (Debian GNU/Linux) DAV/2 PHP/5.2.3-0.dotdeb.0 with Suhosin-Patch mod_ssl/2.0.54 OpenSSL/0.9.7e
Server Built: Jul 28 2006 09:04:55
API Version: 20020903:9
Hostname/port: mail.internethelden.nl:443
Timeouts: connection: 300 keep-alive: 300
MPM Name: Prefork
MPM Information: Max Daemons: 20 Threaded: no Forked: yes
Server Root: /etc/apache2
Config File: /etc/apache2/apache2.conf
Modules: mod_userdir.c, mod_ssl.c, mod_rewrite.c, mod_php5.c, mod_info.c, mod_dav_fs.c, mod_dav.c, mod_cgi.c, mod_auth_digest.c, mod_actions.c, mod_so.c, mod_alias.c, mod_dir.c, mod_negotiation.c, mod_autoindex.c, mod_status.c, mod_mime.c, http_core.c, prefork.c, mod_setenvif.c, mod_env.c, mod_logio.c, mod_log_config.c, mod_auth.c, mod_access.c, core.c
volgens my een bekend probleem bij de debian release van de mpm-prefork, kijk ook even hier: misschien dat er een oplossing bij staat:
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/111709
evilnerds.com
24/08/07, 17:05
Ik heb het errorlog nog even beter bestudeerd, en het blijkt dat apache zo nu en dan gewoon aan z'n taks zit. Ik zat eerst in een verkeerd errorlog te kijken...
[Thu Aug 23 16:43:07 2007] [error] server reached MaxClients setting, consider raising the MaxClients setting
[Thu Aug 23 16:43:56 2007] [notice] caught SIGTERM, shutting down
[Thu Aug 23 16:43:58 2007] [notice] Apache/2.0.54 (Debian GNU/Linux) DAV/2 PHP/5.2.3-0.dotdeb.0 with Suhosin-Patch mod_ssl/2.0.54 OpenSSL/0.9.7e configured -- resuming normal operation
Op dit moment staat prefork op:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 20
MaxRequestsPerChild 0
Hoe kan ik dit het beste omhoog schalen? Server is een single xeon 2.8 ghz met 2,5 GB ram.
Het probleem ligt toch ergens anders, ik heb MaxClients opgehoogd naar 256 maar apache2 is zo nu en dan toch onbereikbaar... De server blijft draaien maar er worden geen connecties geaccepteerd.