Sziasztok,
FreeBSD 7.1 szerveren futtatok 2.2-es Apache-et, es PHP5-ot. (de maga a problema regebben mas verziokkal is fennallt) Mindig frissitem amugy ezeket (es minden mast is) Portupgrade-el a legfrissebbre.
Jelenlegi telepitesek:
apache-2.2.11_3
php5-5.2.8
mysql-server-5.1.30
mysql-client-5.1.30
Az apache konfiguracio az alaptol ennyiben ter el:
ServerTokens Minor
ServerSignature Off
ExtendedStatus On
HostnameLookups On
A gond az hogy nehany weblap szerintem rosszul van megirva, vagy spammelik, vagy nem tudom, de az apache napjaban tobbszor megall ugy hogy a processz fut, de kiszolgalni mar nem tud (az irja ki a bongeszo: A Kapcsolat alaphelyzetbe allt). Kb. 50 virtualis hosztot futtat egyebkent.
Ekkor kill-elem a pid-et majd ujrainditas utan megint jo.
Beallitottam a server-status funkciot, de nekem ez sajnos sokat nem mond.
A logokban sincs sok info, max ennyi:
[Mon Mar 16 20:23:11 2009] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 16 children, there are 0 idle, and 36 total children
[Mon Mar 16 20:24:08 2009] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 8 children, there are 2 idle, and 27 total children
[Mon Mar 16 20:24:09 2009] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 16 children, there are 3 idle, and 35 total children
[Mon Mar 16 20:25:23 2009] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 8 children, there are 4 idle, and 45 total children
DE ezek se mondanak sokat. Meg mivel info-k igy gondolom nem ez a problema megoldasahoz vezeto jel.
Ha tud valaki segitsen!
Koszi
Hozzászólások
hostnamelookups off, keepalive off, szarul megírt oldalak tulajdonosaival szerződést bontani.
Beallitottam a javasoltakat...
esetleg megteni amit javasol???
you may need to increase StartServers, or Min/MaxSpareServers
alapbol ezek altalaban nagyon kis szamokon alnak!
mgb
Beállitottam mindent igy:
ServerLimit 2500
StartServers 100
MinSpareServers 30
MaxSpareServers 200
MaxClients 2500
MaxRequestsPerChild 10
Meglátjuk...
Ha jon egy nagyobb terheles, ez a maxclients ertek jo esellyel meg fogja olni a gepet. A maxclients erteke ha tul nagy, akkor ahogy szuletnek az apache processek, elobb el fog fogyni a fizikalis memoria, majd a gep elkezd swapelni, ami miatt a load fel fog szokni az egekbe, a gep pedig beall. A maxclients ertek ne legyen nagyobb, mint amennyit a gep ki tud szolgalni! (Ez pedig attol fugg, hogy mennyi memoria van a gepben)
+1
max clients le, listen q fel
szvsz a MaxRequestsPerChild irrealisan alacsony... valoban azt szeretned, hogy egy child csak 10 kerest szolgaljon ki, es utana uj child jojjon letre helyette?
A tobbi ertek is erdekes, 50 vhost-ra 30..200 kozott tartott szabad szerver tulzas, hacsak nincs extrem nagy forgalma valamelyiknek, ami ezt indokolna. 2500 klienst nagy valoszinuseggel az eletben nem fogsz egyszerre kiszolgalni.
ExtendedStatus On + server-status, ez hasznos.
Ezek mint irtam be is vannak kapcsolva. De most kicsit jobban utanaolvastam a server-status-nak, valoban hasznos infokat tartalmazhat. Pl. most gyanussa valt az egyik portal, melyet letiltottam es most sokkal jobb...
Viszont most a fenti beallitasokkal elertem, hogy az apache nem all be (eddig), viszont most meg a mysql nem birja (Too many connection)
A beallitas: max_connections = 1000
Erre van valamilyen optimalizalasi otletetek?
http://wiki.mysqltuner.com/MySQLTuner
Nem minden beállítást érdemes meglépni amit javasol, de úgy is érezhető mi az ami csak rosszabb irányba viszi a kiszolgálást.