Sziasztok!
Nem tudom pontosan, hogy jó helyre írok-e ez az első bejegyzésem és örülök hogy végre tag lehetek. Ez amolyan előszó. :) Nah a probléma.
Üzemeltetek egy kis hosting féleséget, amelyik olyan 19-20 tárhelyet szolgál ki apache2 http daemonnal és a levelező rendszerért a PostFix mail server felelős. A probléma nem a load nagysága, inkább a webszerver lassúsága. Bizonyos oldalak egészen lassan generálódnak le a gépen (aminek 0.5MS körül kéne van hogy 200ms ami lassúnak számít), 0.8 as load mellett, és ha néhány oldalt letöltenek esetleg többen akkor meg 4-5 load -ra növekszik, majd visszaesik ismét 1 alá. Ez tehát a fő probléma.
Az apache webszervernél prefork-ot használok, és a beállítások a következők:
ServerRoot "/etc/apache2"
#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
#
#
LockFile /var/lock/apache2/accept.lock
#
#
PidFile /var/run/apache2.pid
#
# Timeout: The number of seconds before receives and sends time out.
TimeOut 45
KeepAlive On
KeepAliveTimeout 2
MaxKeepAliveRequests 80
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 50
MaxRequestsPerChild 500
Próbáltam dolgokat. Ha kicsit visszaveszem a gyeplőt akkor kissebb a terhelés, és egy darabig gyors is, majd ahogy a kérések átlaga nő 3-4 re, belassul szép lassan. Apache status szerint 1-2 napos üzemidő után egy 2-4 közötti a kérések száma másodpercenként a terhelés .250% körüli folyamatok is 10-15 körül, szóval szerintem nem sok, de mégis lassulgat. Néztem már grafikont muninnal is. Ugye ha nyitva van a status akkor azért több erőforrást eszik, így pár napja kikapcsolva tartom, de így is lassulgat.
PostFix-el annyi kérdésem lenne, hogy lehet-e korlátozni hasonló módon mint a SendMail-t. Például maximális load.
Előre is köszönöm a segítséget aki majd foglalkozik a témával!
UPDATE!
Gép config: intel quad 2.4Ghz 4GB ram
Üdv:
wolfnet
- 2089 megtekintés
Hozzászólások
Ettől azért több post-ra számítottam ^^
wolf
- A hozzászóláshoz be kell jelentkezni
hali,
kezdetnek nézd meg, hogy csak azok az apache modulok töltődnek-e be, amikre szükséged van.
KeepAliveTimeout-ot én felvenném 5-re és a MaxKeepAliveRequests-t meg lejjebb mondjuk 40-re - de nagyon függ attól, hogy milyen oldalakat szolgálsz ki.
megérne egy tesztet mondjuk, hogy csak statikus oldalakat szolgálsz ki. könnyen lehet, hogy nem az apache a hibás, hanem a dinamikus oldalakat kiköpő szkriptek.
- A hozzászóláshoz be kell jelentkezni
s_balazs:
igen előfordulhat, viszonylag sok - és mondhatni elsősorban - dinamikus és optimalizálatlan php motorokat futtatnak a felhasználók, ezért elsősorban olyan config kellene, ami úgymond felkészült az ócska motorokkal rendelkező ám nagy forgalmat lebonyolító userekre.
- A hozzászóláshoz be kell jelentkezni
StartServers 15
MinSpareServers 15
MaxSpareServers 30
A SpareServer -ek száma fontos. Ugyanis ha egy időben esik be mondjuk 10 ember (pontosabban 10 http request) és csak 5 tartalék apache2 processed fut, akkor előbb el kell még indítania az 5 tartalékon felül még 5 -öt és az több időt vesz igénybe.
Ezekkel az értékekkel lehet kísérletezni! ;)
- A hozzászóláshoz be kell jelentkezni
Köszönöm a segítségeket, lemegy a csúcsforgalom és elkezdek kísérletezgetni :)
- A hozzászóláshoz be kell jelentkezni
Nos azért teljesen nem múlt el a probléma. Mostanában kicsit több dinamikus oldalt kell kiszolgálni és rendszeresen előfordul olyan hogy 4-5 óra stabil működés után arra leszek figyelmes hogy 30 as a load, akad a gép :D . Apache stop, és minden visszaáll eredetibe.
- A hozzászóláshoz be kell jelentkezni
eacc,apc,xcache használata javasolt ha még nem használsz.
- A hozzászóláshoz be kell jelentkezni
eacc,apc,xcache használata javasolt ha még nem használsz.
- A hozzászóláshoz be kell jelentkezni
Látleletet kéne venni mégis csak a jelenségről. Ha esetleg BP közelében vagy, akkor szívesen meglesném a dolgot, mert elég sok kódot írok az Apache alá és néha én is belefutok sárkányos dolgokba.
- A hozzászóláshoz be kell jelentkezni
valoszinuleg valamelyik weblap mogotti sql query van elqurva.
a dinamikus oldalak backend dbjenek hangolasa segithet valamennyit, meg nezd meg ulimit -n -el, hogy mennyi a parhuzamosan nyitvatarthato fileok szama, ha 1024 vagy kevesebb, nezd meg mi tortenik, ha megemeled.
pl :
/etc/security/limits.conf -ba :
* soft nofile 2048
* hard nofile 2048
ezutan sql szerver, apache restart.
amugy mennyi memoria van a gepben ?
- A hozzászóláshoz be kell jelentkezni
Nem elképzelhető, hogy 4-5 óránként fut mondjuk vmi script? Backup, szinkronizálás, hasonlók.
apache-top, mtop? Ezeket próbáltad esetleg?
Még egy ötlet: vírus? :) /Nem találkoztatok esetleg olyannal, hogy oldal betöltődésekor először üres lap. Frissítés és megy minden? Vagy éppen az oldalakba oda nem illő tartalom jelenik meg? Bejelentett támadó webhely figyelmeztetés? Víruskereső figyelmeztetése átirányításokra?/
- A hozzászóláshoz be kell jelentkezni
Ilyesmibe futottam bele én is pár hónapja. Én ezt csináltam:
- kernel frissítés
- apache2 frissítés
- mysql innodb->xtradb + kis hangolgatás
- eaccelerator
- plusz memória a gépbe
- apache2 keepalive levesz kicsire (sok, nem visszatérő vendégem volt itt, így ez nem játszik nálam)
- mysql wait time-okat levettem 10-20 másodpercre
Az utolsó inkább a béna SQL kódoktól védett meg és attól, hogy az "ügyfelek" csak nyitni szeretnek kapcsolatot, de zárni már nem igazán (Biztos nem szerepelt a tananyagban.) és a mysql meg várna rájuk elég sokáig, persze feleslegesen foglalva az erőforrásokat.
- A hozzászóláshoz be kell jelentkezni
subscribe
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
- az Apache-nál mpm-prefork helyett mpm-worker-rel próbálkoznék. Szerintem gyorsabb - ha nincs valamilyen akadálya a használatának.
- ha PHP-s oldalakat szolgálsz ki, akkor nagymértékben gyorsíthat valamilyen cache: pl. pecl-APC, vagy eaccelerator.
- load-ot tud csinálni email szűrő is. Használsz valamit?
- a lassúságot okozhatja io-wait is: van-e külön partíciója az Apache-nak, milyen fájl rendszer, jó-e az alatta lévő vinyó? Hova dolgozik a PHP cache?
Üdv,
Dw.
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."
- A hozzászóláshoz be kell jelentkezni
++iowait ; de ne csak az apache, az sql szerver alatt levo diszkteruletet is vizslassuk meg.
- A hozzászóláshoz be kell jelentkezni
++mysql
Ja és rosszabb minőségű hardware-es (de azért drága) RAID vezérlők RAID5-tel siralmasan lassúak is tudnak lenni.
Dw.
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."
- A hozzászóláshoz be kell jelentkezni
Egy reverse proxy sokat tud segíteni.
- A hozzászóláshoz be kell jelentkezni
Oh emberek, mennyi üzenet. Néhány napra nem nézek ide mondván el lettem felejtve és tessék!
Nah a helyzet, régebben volt valami vírusos site. Valami javascriptes vírus cucc volt, lehet hogy ólálkodik valami a gépen, nem tudom.
SQl nél a wait 10 secen van, a táblák típusára myisamot használok.
Nincs semilyen phpcacher telepítve jelenleg, mpm-prefork van használva tudomásom szerint, bár hogy pontosan hogy kellene használni nem tudom. aki ebben nagy szaki a wolfnetteam@gmail.com címen vegye fel velem a kapcsolatot, szívesen elküldök minden config fájlt, csak oldódjon meg.
IOWAIT igen, volt v ele gond, mostanában 0.0, nincs külön partíció, egy 600as WD van alattunk, sata2, nincs vele gond. Nincs se raid se semmi.
2GB ramunk van, egy core2 intel, 2.4Ghz-vel. i686 debian 5.0 naprakész frissítésekkel.
Ami érdekes hogy fut-fut teljesen stabil, 1-2 es load, kibaszott gyors, egyszóval nincs gondja. És akkor egyik percről a másikra nem nézek rá, 20as load, 80% os SQL terhelés, 4-5 nagyobb apache folyamat. A szerón még netrádiók futnak, összesen olyan 70 hallgatóval, elosztva 4 rádióra, nem hiszem hogy nagyon bekavarnának de tény hogy negatív irányba hajlik tőle a dolog.
- A hozzászóláshoz be kell jelentkezni
Esetleg nézd meg a log-ban, hogy melyik oldalakat kérik le amikor amikor felmegy a load.
- A hozzászóláshoz be kell jelentkezni
>> 19-20 tárhelyet szolgál ki apache2 http daemonnal és a levelező rendszerért a PostFix mail server felelős.
>> IOWAIT igen, volt v ele gond, mostanában 0.0, nincs külön partíció, egy 600as WD van alattunk, sata2, nincs vele gond
>> 2GB ramunk van, egy core2 intel, 2.4Ghz-vel. i686 debian 5.0 naprakész frissítésekkel.
Pedig ez nagyon iowait -nek néz ki. Meg RAM hiánynak. Ez a gép egy db. napi 20-30 ezer látogatót kiszálgáló php+mysql oldal alá is kevés (ha sok sql query van). 19-20 statikus laphoz persze simán jó.
Azért olvass utána az adatbiztonságnak, használj RAID-1 -et vagy készíts mentést rendszeresen egy külső winchesterre vagy egy másik tárhelyre, mert ez így gáz.
- A hozzászóláshoz be kell jelentkezni
"használj RAID-1 -et vagy készíts mentést rendszeresen"
én inkább "és"-t tennék a mondatba
- A hozzászóláshoz be kell jelentkezni
Jogos. ;)
- A hozzászóláshoz be kell jelentkezni
napi adatmentés készül a szerver fontosabb területeiről.
szerintem maga a gép ettől sokkal többre is képes, csak mivel balfasz vagyok nem jók a configok :D 99% ra mondom hogy ennyi gond.
- A hozzászóláshoz be kell jelentkezni
Nem, a vas kevés. IO lesz. ajánlom dstat-ot vmstat-ot mikor nagy a load. Ha az wait rész magas akkor hdd lesz. Márpedig 1 db hdd nem sokat ér ilyen felállásban.
- A hozzászóláshoz be kell jelentkezni