Szia!
A leírtak lapján egyértelmű, hogy a géped kóros memóriahiányitiszben szenved!
Több okból is praktikus lehet a memóriabővítés számodra, de erről a hozzászólás vége felé. A mysql jelen esetben csak áldozat, amit az OOM kiöl, mint potenciálisan legtöbb memóriát es leghosszabb ideig használó processz. Fontos, hogy praktikus lehet az oom paramétereket úgy kialakítani, hogy a mysql-t ilyen esetekben se ölje ki, hanem válasszon más processzt inkább, ugyanis rengetegszer láttam már javíthatatlanul összeomló innodb-t mysql alatt egy-egy leállás után. Memóriahiány néhány oka a következő lehet:
* A mysql hibásan van beállítva, ezért jóval több query cache-t vagy index cache-t memóriát használ, mint amennyi valójában rendelkezésedre áll.
* Valami miatt túl sok apache processz indul el alapból, ami szintén könnyen felemésztheti a memória tartalékaidat
* Ami esélyesebb az pedig az, hogy egyszerre túl sok php interpreter fut - túl sok kérés torlódik fel.
A memória használatdból egyébként látszik, hogy igyencsak kevés fs cache-t használ a redszered, ebből adódóan a weboldalak kiszolgálása is draszikusan hosszabb időt vehet igénybe, aminek egyenes következménye az az, hogy mégjobban egymásra futnak a kérések és gyorsabban elfogy a maradék kevés memória is.
Egy teljes LAMP rendszernek általánosságban véve nem sok 1GByte memória egyébként, a mysql 386MByte alatt éppenhogy csak vegetál -nem lehetetlen tehát, hogy fusson, de nem érzi jól magát-, erre rá jön az apache, ftp és gondolom a levelezés is, valamint kérésenként a php-ra számolhatsz átlag 48MByte-ot. Ahhoz, hogy a szükséges fileok betöltése optimális legyen, nem árt 200MByte körüli fs cache sem, nem utolsó sorban ez a mysql számára is igen jótékony dolog.
* Tüneti kezelés, de ha a kéréseid nem folyamatosan, hanem impulzusszerűen érkeznek, akkor az impulzusokat swap memória beállításával átvészelheted.
* Lehet, hogy jobb az apache MaxClients parameteret egy kiszolgálható méretre beállítani, minthogy megálljon teljesen a weboldalad.
Könyvjelzők