Apache steigt aus

Apache, Lighttpd, nginx, Cherokee
gerks
Posts: 13
Joined: 2006-02-01 13:13

Apache steigt aus

Post by gerks » 2009-01-13 10:13

Hallo hallo,

habe leider ein Problem mit meinem Apache und hoffe ihr habt eventuell noch weitere Ideen an was es liegen könnte bzw vielleicht überseh ich auch etwas :?
Nach immer unbestimmter Zeit und unabhängig von den Besucherzahlen verweigert der Indianer einfach seinen Dienst. Der Dienst selbst läuft zwar hat aber laut ps aux soviele children wie MaxClients eingestellt sind und dann passiert gar nichts mehr bis zum Apache Neustart. Apache selbst loggt zum Zeitpunkt des Ausstiegs nichts im Error Log. Auch nicht das MaxClients erreicht wurden.

Der Server dient weiterhin als MySQL Master für eine Replikation und vor dem Apache läuft ein Squid Proxy.

Anbei meine Konfiguration und teile des Setups.
Wenn ihr noch Infos benötigt, gerne.

Code: Select all

uname -a
Linux webserver 2.6.18-6-686 #1 SMP Fri Dec 12 16:48:28 UTC 2008 i686 GNU/Linux


Code: Select all

cat /etc/debian_version
4.0


Code: Select all

apache2 -V
Server version: Apache/2.2.3
Server built:   Sep  6 2008 09:52:20
Server's Module Magic Number: 20051115:3
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)


Code: Select all

aktivierte apache2 module
lrwxrwxrwx 1 root root 28 2008-02-28 12:13 alias.load -> ../mods-available/alias.load
lrwxrwxrwx 1 root root 33 2008-02-28 12:13 auth_basic.load -> ../mods-available/auth_basic.load
lrwxrwxrwx 1 root root 33 2008-02-28 12:13 authn_file.load -> ../mods-available/authn_file.load
lrwxrwxrwx 1 root root 36 2008-02-28 12:13 authz_default.load -> ../mods-available/authz_default.load
lrwxrwxrwx 1 root root 38 2008-02-28 12:13 authz_groupfile.load -> ../mods-available/authz_groupfile.load
lrwxrwxrwx 1 root root 33 2008-02-28 12:13 authz_host.load -> ../mods-available/authz_host.load
lrwxrwxrwx 1 root root 33 2008-02-28 12:13 authz_user.load -> ../mods-available/authz_user.load
lrwxrwxrwx 1 root root 32 2008-02-28 12:13 autoindex.load -> ../mods-available/autoindex.load
lrwxrwxrwx 1 root root 26 2008-02-28 12:28 cgi.load -> ../mods-available/cgi.load
lrwxrwxrwx 1 root root 30 2008-03-03 22:14 deflate.conf -> ../mods-available/deflate.conf
lrwxrwxrwx 1 root root 30 2008-03-03 22:14 deflate.load -> ../mods-available/deflate.load
lrwxrwxrwx 1 root root 26 2008-02-28 12:13 dir.conf -> ../mods-available/dir.conf
lrwxrwxrwx 1 root root 26 2008-02-28 12:13 dir.load -> ../mods-available/dir.load
lrwxrwxrwx 1 root root 26 2008-02-28 12:13 env.load -> ../mods-available/env.load
lrwxrwxrwx 1 root root 30 2008-08-20 10:09 expires.load -> ../mods-available/expires.load
lrwxrwxrwx 1 root root 30 2008-09-23 17:13 headers.load -> ../mods-available/headers.load
lrwxrwxrwx 1 root root 27 2008-02-28 12:13 mime.load -> ../mods-available/mime.load
lrwxrwxrwx 1 root root 34 2008-02-28 12:13 negotiation.load -> ../mods-available/negotiation.load
lrwxrwxrwx 1 root root 27 2008-02-28 12:28 php5.conf -> ../mods-available/php5.conf
lrwxrwxrwx 1 root root 27 2008-02-28 12:28 php5.load -> ../mods-available/php5.load
lrwxrwxrwx 1 root root 30 2008-03-03 22:14 rewrite.load -> ../mods-available/rewrite.load
lrwxrwxrwx 1 root root 31 2008-02-28 12:13 setenvif.load -> ../mods-available/setenvif.load
lrwxrwxrwx 1 root root 26 2009-01-07 17:53 ssl.conf -> ../mods-available/ssl.conf
lrwxrwxrwx 1 root root 26 2009-01-07 17:53 ssl.load -> ../mods-available/ssl.load
lrwxrwxrwx 1 root root 29 2008-02-28 12:13 status.load -> ../mods-available/status.load


Code: Select all

apache2.conf Eckdaten
Timeout 150
KeepAlive On
MaxKeepAliveRequests 300
KeepAliveTimeout 2

<IfModule mpm_prefork_module>
    StartServers           5
    MinSpareServers        5
    MaxSpareServers       10
    MaxClients            50
    MaxRequestsPerChild  150
</IfModule>


Code: Select all

konfiguration des apc moduls
[APC]
extension=apc.so
apc.enabled=1
apc.shm_segments=1
apc.optimization=0
apc.shm_size=256
apc.ttl=3600
apc.user_ttl=1800
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=0


Code: Select all

laufende prozesse
init─┬─acpid
     ├─apache2───12*[apache2]
     ├─cron
     ├─dhcpcd-bin
     ├─events/0
     ├─events/1
     ├─2*[getty]
     ├─khelper
     ├─kirqd
     ├─klogd
     ├─ksoftirqd/0
     ├─ksoftirqd/1
     ├─kthread─┬─aio/0
     │         ├─aio/1
     │         ├─ata/0
     │         ├─ata/1
     │         ├─ata_aux
     │         ├─kacpid
     │         ├─kblockd/0
     │         ├─kblockd/1
     │         ├─khubd
     │         ├─kjournald
     │         ├─kmirrord
     │         ├─kpsmoused
     │         ├─kseriod
     │         ├─kswapd0
     │         ├─md0_raid1
     │         ├─md1_raid1
     │         ├─2*[pdflush]
     │         ├─scsi_eh_0
     │         ├─scsi_eh_1
     │         ├─scsi_eh_2
     │         └─scsi_eh_3
     ├─master─┬─anvil
     │        ├─bounce
     │        ├─pickup
     │        ├─qmgr
     │        ├─5*[smtp]
     │        ├─smtpd
     │        ├─tlsmgr
     │        └─trivial-rewrite
     ├─mdadm
     ├─migration/0
     ├─migration/1
     ├─mydns
     ├─mysqld_safe─┬─logger
     │             └─mysqld───20*[{mysqld}]
     ├─ntpd
     ├─portmap
     ├─powernowd
     ├─proftpd
     ├─rpc.idmapd
     ├─rpc.statd
     ├─squid───squid───unlinkd
     ├─sshd───sshd───bash───pstree
     ├─syslogd
     ├─udevd
     ├─unfsd
     └─zabbix_agentd───4*[zabbix_agentd]


Code: Select all

cat /proc/meminfo
MemTotal:      2059824 kB
MemFree:         94180 kB
Buffers:        259428 kB
Cached:         795140 kB
SwapCached:          0 kB
Active:        1383400 kB
Inactive:       347636 kB
HighTotal:     1162304 kB
HighFree:        11556 kB
LowTotal:       897520 kB
LowFree:         82624 kB
SwapTotal:     2104496 kB
SwapFree:      2104448 kB
Dirty:           25976 kB
Writeback:           0 kB
AnonPages:      676448 kB
Mapped:          64668 kB
Slab:           221592 kB
PageTables:       2920 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:   3134408 kB
Committed_AS:  1038344 kB
VmallocTotal:   114680 kB
VmallocUsed:      3768 kB
VmallocChunk:   110428 kB


Grüsse

gerks
Posts: 13
Joined: 2006-02-01 13:13

Re: Apache steigt aus

Post by gerks » 2009-01-15 10:06

Hello again,

so habe MaxRequestsPerChild auf 10000 gesetzt. Hatte ich auf 150 runtergeschraubt um zu sehen ob ich vielleicht irgendwo ein Speicherleckproblem habe.
Habe irgendwie den Verdacht das es am APC liegt und den nehm ich mir jetzt auch mal vor.

Von Euch scheint niemand eine Vermutung oder Idee zu haben? Gut ne Ferndiagnose ist auch schwer gebe ich ja zu.
Finde das Verhalten vom Indianer seltsam das er zwar offensichtlich läuft und die Anzahl seiner "MaxClients" spawnt aber nix mehr ausliefert und nichts loggt.

Grüsse

gerks
Posts: 13
Joined: 2006-02-01 13:13

Re: Apache steigt aus

Post by gerks » 2009-01-15 13:57

Ich bin meinem Verdacht nachgegangen und habe den APC Cache auf 16MB reduziert damit er schnell vollläuft; und siehe da plötzlich hagelt es Segmentation Faults im error.log

[notice] child pid 1022 exit signal Segmentation fault (11)

Wieso mir diese Einträge vorher nie aufgefallen sind frage ich mich selbst gerade. Ich habe die Downtimes schon öfters mit allen möglichen Serverlogs verglichen und konnte zwar hier und da auch was feststellen und Maßnahmen ergreifen aber waren wohl nie die Ursache für mein Problem. Werde meinen error.log nochmals auf Überschneidungen mit meinen Downtimes vergleichen und hoffe das es passt.

Die Segmentation faults stoppen sofort wenn ich in der Applikation die Verwendung des APC Caches deaktiviere. Jetzt ist nur die Frage ob der Apache auch stabil läuft. Das wird sich mit der Zeit zeigen.

@matzewe01
Habe den Apache Log mal auf "debug" umgestellt und erhalte nichts nennenswertes. Ein paar SSL Timeouts nachdem ich im geschützten Bereich unterwegs war und das der Server wohl busy ist.

Grüsse und toi toi toi

User avatar
Joe User
Project Manager
Project Manager
Posts: 11614
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Apache steigt aus

Post by Joe User » 2009-01-15 14:31

Exakte Apache, PHP und APC Versionen bitte. Sind es alles Distributionspakete? Distribution? APC Config bitte.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

gerks
Posts: 13
Joined: 2006-02-01 13:13

Re: Apache steigt aus

Post by gerks » 2009-01-15 15:28

matzewe01 wrote:Dann loggt er ja doch.
Zur Fehlerverfolgung kann das debuggen nicht schaden. In der apache doku gibts zu den "Logleveln", die man seperat einstellt, eine eigene Dokumentation.
http://httpd.apache.org/docs/2.2/logs.html

Jepp er loggt, aber nur wenn der APC voll ist und es die Segmentation Faults gibt. Sonst loggt er nicht sonderlich viel - gibt vermutlich nichts was ja prinzipiell gut ist.

Joe User wrote:Exakte Apache, PHP und APC Versionen bitte. Sind es alles Distributionspakete? Distribution? APC Config bitte.

* PHP Version 5.2.0-8+etch13, APC 3.0.16
* Apache Version (2.2.3) und APC Config stehen bereits im ersten Beitrag.
* Alles debian etch.

Grüsse

User avatar
Joe User
Project Manager
Project Manager
Posts: 11614
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Apache steigt aus

Post by Joe User » 2009-01-15 15:38

APC bitte auf die aktuelle Version updaten, notfalls per kompilieren. Neue apc-config:

Code: Select all

extension=apc.so
apc.enabled="1"
apc.shm_segments="1"
apc.shm_size="30"
apc.num_files_hint="1024"
apc.ttl="7200"
apc.user_ttl="7200"
apc.gc_ttl="3600"
apc.cache_by_default="1"
;apc.filters=""
;apc.mmap_file_mask="/tmp/apcphp5.XXXXXX"
apc.mmap_file_mask="/dev/zero"
apc.slam_defense="0"
apc.file_update_protection="2"
apc.enable_cli="0"
apc.max_file_size="1M"
apc.stat="1"
apc.write_lock="1"
apc.report_autofilter="0"
apc.include_once_override="0"
apc.rfc1867="0"
apc.rfc1867_prefix="upload_"
apc.rfc1867_name="APC_UPLOAD_PROGRESS"
apc.rfc1867_freq="0"
apc.localcache="0"
apc.localcache.size="512"
apc.coredump_unmap="0"
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

gerks
Posts: 13
Joined: 2006-02-01 13:13

Re: Apache steigt aus

Post by gerks » 2009-01-15 16:22

Hello hello,

yepp bin gerade noch am checken ob der APC tatsächlich der Verursacher meines Problems ist und werde ihn nach dem Test auf den aktuellen Stand bringen. Auch wenn der APC Changelog nicht sehr aussagekräftig ist was dieses Problem angeht. Derzeit steht die Kiste ziemlich unter Last so ganz ohne seinen geliebten Cache :roll:

Code: Select all

apc.shm_size="30"

30MB weil bei debian "/proc/sys/kernel/shmmax" standardmäßig 30MB sind oder ist es eine default config? Wenn es am shmmax liegt wie weise ich dem APC 150MB zu? Indem ich die shm_segments auf 5 erhöhe? Ich meine das das beim letzten Versuch nicht geklappt hat und ich dann letztendlich über die shm_size gegangen bin. Hat da jemand verlässliche Infos?

Grüsse

User avatar
Joe User
Project Manager
Project Manager
Posts: 11614
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Apache steigt aus

Post by Joe User » 2009-01-15 16:44

Gerks wrote:yepp bin gerade noch am checken ob der APC tatsächlich der Verursacher meines Problems ist

Ich setze ein virtuelles Bier drauf ;)

Gerks wrote:Auch wenn der APC Changelog nicht sehr aussagekräftig ist was dieses Problem angeht.

Die diversen Bugtracker und Mailinglisten der Distributionen und diverse Blogs dagegen schon eher...

Gerks wrote:oder ist es eine default config?

Default und für kleine bis mittlere Projekte auch völlig ausreichend.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

gerks
Posts: 13
Joined: 2006-02-01 13:13

Re: Apache steigt aus

Post by gerks » 2009-01-15 16:53

Sieht gut aus für dein virtuelles Bier. Lade dich auch gerne mal auf ein echtes ein :P
Finde sowas wird in Foren zu selten zelebriert.

Joe User wrote:Default und für kleine bis mittlere Projekte auch völlig ausreichend.

Jepp aber zumindest die 30MB muss ich auf jeden hochstellen. Hast du da Infos welchen Weg man da geht. Über die shm_segments als Multiplikator? oder direkt über die shm_size? Habe ~350 Hits pro Sekunde auf den APC Cache. Also eher mittleres Projekt.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11614
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Apache steigt aus

Post by Joe User » 2009-01-15 17:22

Gemäss http://de.php.net/manual/en/apc.configuration.php müsstest Du die Segmente erhöhen, wobei diese Option unabhängig von den Cache-Hits sein sollte. Sieh Dir mal die Auslastung des Cache im Admin-Interface an, erst wenn der Cache ständig mit mehr neuen Files gefüllt wird, als Cache-Hits erzeugt werden, lohnt ein step-by-step Erhöhen der Segmente.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

gerks
Posts: 13
Joined: 2006-02-01 13:13

Re: Apache steigt aus

Post by gerks » 2009-01-15 18:10

Jepp mich verwirrt halt das Handbuch. Da steht das man shm_segments als Multiplikator für shm_size verwenden soll, wenn das OS nicht genug Speicherplatz zulässt. Aber unter Debian kann ich locker 256MB Einstellen auch wenn im /proc/sys/kernel/shmmax 30MB stehen.

Joe User wrote: Sieh Dir mal die Auslastung des Cache im Admin-Interface an, erst wenn der Cache ständig mit mehr neuen Files gefüllt wird, als Cache-Hits erzeugt werden, lohnt ein step-by-step Erhöhen der Segmente.

Die 256MB aus meiner Anfangskonfiguration benötige ich schon mindestens. Habe eine recht agressive caching Strategie bei dem Projekt um die Datenbanken weitesgehend entlasten zu können.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11614
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Apache steigt aus

Post by Joe User » 2009-01-15 21:03

Wenn Du primär die DB entlasten willst, solltest Du mal über http://www.danga.com/memcached/ nachdenken.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

gerks
Posts: 13
Joined: 2006-02-01 13:13

Re: Apache steigt aus

Post by gerks » 2009-01-15 21:33

Joe User wrote:Wenn Du primär die DB entlasten willst, solltest Du mal über http://www.danga.com/memcached/ nachdenken.

Falls APC die Segmentation Fault Probleme in der aktuellsten Version ebenfalls hat, werde ich wohl oder übel Umsteigen müssen. Ich habe das lange evaluiert und mir lief es eigentlich ganz gut rein das APC laut diversen Benchmarks immer viel viel schneller war als Memcached. Auch ist das APC ja sowieso installiert um den PHP Code selbst etwas zu beschleunigen. Noch eine Anwendung / Fehlerquelle muss ja nicht sein.

Ein etwas älterer Benchmark der unterschiedlichen Caching Lösungen. Bei APC fällt der Netzwerk "Overhead" weg was sich offensichtlich auf die Performance auswirkt.
http://www.mysqlperformanceblog.com/200 ... omparison/

Grüsse

PS: Der Indianer rennt seither ... mal sehen ob das so bleibt (load average: 9.94, 10.69, 10.81) *g*

gerks
Posts: 13
Joined: 2006-02-01 13:13

Re: Apache steigt aus

Post by gerks » 2009-01-17 15:34

Hello again,

nachdem der APC nun ein paar Tage deaktiviert war und der Server seinen Dienst zwar mit hoher Last allerdings ohne Probleme verrichtet hat ist die Ursache für das Problem wohl gefunden.

Ich habe heute Morgen die aktuelle stable Version (3.0.19) installiert und hatte bei Auslastung des Speichers erneut Segmentation faults. Zwar weniger als mit der vorherigen Version aber das könnte auch am Wochenede liegen (weniger los auf den Seiten).

Testweise habe ich im APC nun den File Cache deaktiviert und lasse nur den User Cache laufen um zu sehen ob man die Segmentation faults auf den einen oder anderen Bereich des APCs zurückführen kann. Als letzten Nothaken habe ich noch die 3.0.22 Version welche aber noch nicht stable ist.

Grüsse

[Update 26.01.2009]
Also nur mit dem User Cache hatte ich die selben Probleme. User Cache deaktiviert und nur mit dem File Cache läuft der Apache nun immerhin schon 4 Tage am Stück was ja eine gute Leistung ist. Der nächste Schritt wird sein zu Prüfen ob es am APC User Cache liegt oder an der Applikation die eventuell versucht wirre Sachen zu machen.