Apache2 Kifagyás, instabilitás (probléma megoldást kérek)
Üdvözletem!
Elég nagy gondban vagyok. Immáron második napja akadozik a webes szolgáltatásunk apache2 probléma miatt. Elindul a kiszolgáló, eltelik 10-15 perc, a processz nem áll le, de a kiszolgálás megakad. Olyan mint egy DDOS támadás, de ezt azt hiszem kizárhatjuk mert 100 indításból 100 kifagy ugyan olyan idő eredményekkel. Úgy tűnik nekem mintha "túlhajszolná" magát a rendszer, és már nem bírna a folyamatokkal. Mintha nem lenne vége az elindított folyamatoknak. A processz lista szerint 190-230 apache2 folyamat is fut egyszerre olykor. Én config hibára gyanakszok, de a megoldást nem tudom.
Server Config:
2 GB ram, Intel Core 2 duo 2.4Ghz. (körül - belül 10-15 kevésbé forgalmas oldalt szolgálunk ki. )
Apache2 config (fontosabb részek):
Aki jártas a szakmában, kérem segítsen, fontos!
Köszönettel:
wolfnet
■ Elég nagy gondban vagyok. Immáron második napja akadozik a webes szolgáltatásunk apache2 probléma miatt. Elindul a kiszolgáló, eltelik 10-15 perc, a processz nem áll le, de a kiszolgálás megakad. Olyan mint egy DDOS támadás, de ezt azt hiszem kizárhatjuk mert 100 indításból 100 kifagy ugyan olyan idő eredményekkel. Úgy tűnik nekem mintha "túlhajszolná" magát a rendszer, és már nem bírna a folyamatokkal. Mintha nem lenne vége az elindított folyamatoknak. A processz lista szerint 190-230 apache2 folyamat is fut egyszerre olykor. Én config hibára gyanakszok, de a megoldást nem tudom.
Server Config:
2 GB ram, Intel Core 2 duo 2.4Ghz. (körül - belül 10-15 kevésbé forgalmas oldalt szolgálunk ki. )
Apache2 config (fontosabb részek):
...
Timeout 10
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 5
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 30
MaxSpareServers 100
MaxClients 155
MaxRequestsPerChild 200
</IfModule>
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
StartServers 2
MaxClients 100
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 200
</IfModule>
User www-data
Group www-data
...
Timeout 10
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 5
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 30
MaxSpareServers 100
MaxClients 155
MaxRequestsPerChild 200
</IfModule>
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
StartServers 2
MaxClients 100
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 200
</IfModule>
User www-data
Group www-data
...
Aki jártas a szakmában, kérem segítsen, fontos!
Köszönettel:
wolfnet
MPM
Ha prefork modult használsz, akkor a StartServers értéke nekem kicsit alacsonynak tűnik, logika azt diktálná, hogy legyen az értéke legalább azonos a MinSpareServers értékével. A MaxRequestsPerChild értéket nyugodtan föltolhatod akár 1000-ig is, a MaxClients értéket meg ennél valamivel magasabbra. Ezen felül a KeepAliveokat érdemes kikapcsolni.
Ha ez még mindig nem segített, kapcsold be a status és info modulokat és nézd meg, hogy mi történik ilyenkor (mondjuk egy perces intervallumban). Ezen felül nézd meg a logokat, hogy mit írogat bele.
Ha semmi más nem segít, akkor strace paranccsal támadd meg az Apache processzeket.
Próbálkozok. Most a prefork
Most már 30-35 perce fut az apache, de körül-belül 190 apache2 folyamat van, ez gond? Valamint azért nem az igazi a sebesség. (szokásos 0.8MS helyett 120-150MS egy php generálás.
(amúgy megint kihalt :()
Status?
http://localhost/server-status
Ha nem látod:
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from localhost, 127.0.0.1
</Location>
ExtendedStatus On
Lehetséges, h valami rosszul öszerakott php script tartja fogva a processzeket, esetleg valami folyamatos http kéréseket generál.
beállítva
beállítva, nézem az adatokat. Amin kiderül valami, írok. Köszönöm.
érdekes
CPU Usage: u62.76 s166.63 cu.06 cs0 - .872% CPU load
.454 requests/sec - 3105 B/second - 6.7 kB/request
26 requests currently being processed, 6 idle workers
A server load: 1.2 körül, az adat mégis szép. Amiből sok van:
32-5 - 0/0/82 . 3.55 442 0 0.0 0.00 0.50 ::1 wolfnet-studio.com OPTIONS * HTTP/1.0
Ez mit csinál?
fejlemény
teljes
Megnézem