Proč mi umírá Apache?

Rhinox

Re:Proč mi umírá Apache?
« Odpověď #15 kdy: 01. 06. 2016, 11:23:49 »

Procesy v hostiteli vidí procesy na všech virtuálech. Apache pak má takovou ošklivou vlastnost, že když vidí jiné procesy Apache, které nereagují na reload třeba při logrotate, tak je postřílí.

Druhá věc u OpenVZ je, že dmesg ve virtálu nevypisuje skoro nic a free není (nebo alespoň nebyl, když jsem OpenVZ naposledy používal, což už jsou tři roky) ani orientační, tak pokud jsi hledal je ve virtuálu, ten OOM kill tam nemusel být vidět.

Nevim jak funguje openvz ale pochybuju ze kazdej proces v hostu vidi vsechny procesy ve vsech openvz-kontejnerech.

Taky nechapu proc by hostingova firma nechala na openvz-serveru bezet apache...

No nic, pustim si skript co kazdou vterinu koukne kolik je volne pameti a zacne logovat jakmile se dostane pod 50% free. Snad to zachyti. Ovsem osobne si nemyslim ze apache je odstrelenej kvuli tomu...


Lukáš K.

Re:Proč mi umírá Apache?
« Odpověď #16 kdy: 01. 06. 2016, 12:27:57 »
Zkusil bych v první řadě položit dotaz přímo té hostingové firmě. Třeba ten signál opravdu přichází od hostitele a oni už budou vědět, proč se to děje.

Sten

Re:Proč mi umírá Apache?
« Odpověď #17 kdy: 01. 06. 2016, 14:04:36 »
To s tím apachem je teda hnusný, ale v době systemd mě asi nic nešokuje. Dneska co se samo nerestartuje, tak je vlastně nefunkční :)

Tohle je pozůstatek sysvinitu, kdy se signalizuje jen řídicí proces. V době systemd takové chování vůbec není potřeba, protože se o to umí postarat systemd.

Nevim jak funguje openvz ale pochybuju ze kazdej proces v hostu vidi vsechny procesy ve vsech openvz-kontejnerech.

Vidí, je to tak u každé kontejnerové virtualizace. A je to proto, aby bylo možné profilovat případné výkonnostní problémy přes nástroje jako top a iotop.

Taky nechapu proc by hostingova firma nechala na openvz-serveru bezet apache...

To nevím. Původně jsem předpokládal, že si tu virtualizaci děláte sám (protože většinou dělám s KVM či bare HW a kontejnery mám tedy vždy pod plnou kontrolou). Hostingová firma by ale asi měla vědět, že to nemá dělat.

No nic, pustim si skript co kazdou vterinu koukne kolik je volne pameti a zacne logovat jakmile se dostane pod 50% free. Snad to zachyti. Ovsem osobne si nemyslim ze apache je odstrelenej kvuli tomu...

Což vzhledem k tomu, že free v OpenVZ moc dobře nefunguje (nefungovalo?), nemusí nic zjistit.

Obrátil bych se v tomto případě na hostingovou firmu. Můžete ještě přidat FailureAction pro tu službu a třeba zalogovat všechny běžící procesy.

Mimochodem co ty bean countery?

j

Re:Proč mi umírá Apache?
« Odpověď #18 kdy: 02. 06. 2016, 10:43:17 »
...protože se o to umí postarat systemd.

Treba tak, ze to postrili vsechno kdyz se user odhlasi ze?

Lol Phirae

Re:Proč mi umírá Apache?
« Odpověď #19 kdy: 02. 06. 2016, 10:58:37 »
...protože se o to umí postarat systemd.

Treba tak, ze to postrili vsechno kdyz se user odhlasi ze?

Jojo, to je ultimátní řešení... Tenhle pošuk z Lennartovy církve tady opravdu scházel.  ::)


Sten

Re:Proč mi umírá Apache?
« Odpověď #20 kdy: 02. 06. 2016, 13:32:18 »
...protože se o to umí postarat systemd.

Treba tak, ze to postrili vsechno kdyz se user odhlasi ze?

No vidíš, a Apache to dělá už roky ;)

Re:Proč mi umírá Apache?
« Odpověď #21 kdy: 02. 06. 2016, 13:49:29 »
...protože se o to umí postarat systemd.

Treba tak, ze to postrili vsechno kdyz se user odhlasi ze?

No vidíš, a Apache to dělá už roky ;)

Jenomze systemd spatny, apache dobry, beeeeee.

(nez se toho nekdo s nedostatkem schopnosti cist s porozumenim chopi - nerikam, ze by apache byla nejaka tragedie, jenom mi vadi, kdyz nekteri smichaji u SystemD naprosto validni kritiku - binarni log je klasika - s hazenim spiny za kazdou cenu)

x14

  • ***
  • 182
    • Zobrazit profil
    • E-mail
Re:Proč mi umírá Apache?
« Odpověď #22 kdy: 02. 06. 2016, 15:28:56 »
Nevim dle jake logiky pracuje OOM, jen tipuju ze by snad neshazoval porad jenom apache.
Chyba lávky! Zde je vysvětlení  :) :) :)

x

Re:Proč mi umírá Apache?
« Odpověď #23 kdy: 02. 06. 2016, 15:59:18 »
Odkdy je v OOM Killeru nebo Linuxu nejaka logika? OOM Killer je algoritmus prosteho mozku - jakmile zacne dochazet pamet, tak zacne zabijet nahodne procesy a zacne od tech co zerou nejvice (coz je v drtive vetsine pripadu to co chcete aby na serveru bezelo) a u toho se ale nezastavi, protoze ani to mu nepomaha a pokracuje dale az zabiji i procesy nutne pro beh system a pak booooom. Zrovna dneska jsem opet zazil.

Sten

Re:Proč mi umírá Apache?
« Odpověď #24 kdy: 02. 06. 2016, 16:06:56 »
Odkdy je v OOM Killeru nebo Linuxu nejaka logika? OOM Killer je algoritmus prosteho mozku - jakmile zacne dochazet pamet, tak zacne zabijet nahodne procesy a zacne od tech co zerou nejvice (coz je v drtive vetsine pripadu to co chcete aby na serveru bezelo) a u toho se ale nezastavi, protoze ani to mu nepomaha a pokracuje dale az zabiji i procesy nutne pro beh system a pak booooom. Zrovna dneska jsem opet zazil.

OOM killer má poměrně složitá pravidla výběru, nedělá to náhodně. Typicky začíná procesy, které běží pod nepriviligovanými uživateli, nemají TTY a mají velké nároky na paměť. Smysl není nechat běžet na serveru to, co si vy zrovna myslíte, že by mělo běžet pořád (to stejně nejde zaručit), ale umožnit administrátorovi se připojit a nějak ten problém vyřešit.

Pokud ani to nepomůže, pak je chyba mezi židlí a klávesnicí, kde se rozhodovalo, co všechno se na tom serveru s tak obrovským nedostatkem paměti spustí.

Rhinox

Re:Proč mi umírá Apache?
« Odpověď #25 kdy: 05. 06. 2016, 12:48:28 »
Tak sem si udelal skript, kterej kazdou vterinu kontroluje kolik % volne pameti mam a kdyby to bylo mene nez danej limit (50%), logne to do souboru (i s datumem/casem).

Po dvou dnech mi apache opet padnul, a skript nezaznamenal ani jeden pripad kdyby bylo mene volne pameti, nez 50% (t.j. 2GB)! Tak bud se pamet necim obsadila rychleji nez za vterinu, nebo apache pada kvuli necemu jinemu...

Ted sem vyhazel tak ~25 modulu co tam apache po standartni instalaci natahuje, a uvidim jestli to pomuze...

Bzron

Re:Proč mi umírá Apache?
« Odpověď #26 kdy: 05. 06. 2016, 22:00:17 »
Tak sem si udelal skript, kterej kazdou vterinu kontroluje kolik % volne pameti mam a kdyby to bylo mene nez danej limit (50%), logne to do souboru (i s datumem/casem).

Po dvou dnech mi apache opet padnul, a skript nezaznamenal ani jeden pripad kdyby bylo mene volne pameti, nez 50% (t.j. 2GB)! Tak bud se pamet necim obsadila rychleji nez za vterinu, nebo apache pada kvuli necemu jinemu...

Ted sem vyhazel tak ~25 modulu co tam apache po standartni instalaci natahuje, a uvidim jestli to pomuze...

Mohol by si ten script uverejnit ? rad by som si ho pozrel ...
Mne sa presne toto minuly tyzden stalo, proste znicoho nic v niektorych pripadoch do 10 sekund spadol apache, OOM killer bezal na plne obratky ale nedostal sa ztoho.

Chyba bola vo webovej aplikacii ktora sa dostala do niakeho loopu a otvarala otvarala atd, smola bola ta ze na danu stranku nikto nechodil a sem tam mi ju otvoril google bot, apod.

Nemas tam chybnu aplikaciu ?

Dalsi problem bol ze mysql bol zle nastaveny a mohol si zobrat az 50 GB pamate  a server mal 16 GB ...

Test

Re:Proč mi umírá Apache?
« Odpověď #27 kdy: 05. 06. 2016, 23:59:58 »
Zkus nastavit auditd, něco ve stylu
Kód: [Vybrat]

auditctl -a always,exit -F path=/var/run/httpd.pid -F perm=r -F auid=0 -k rootkill
auditctl -a always,exit -F path=/bin/kill -F perm=x -F auid=0 -k rootkill
auditctl -a always,exit -S kill -F auid=0 -F pid=[mainpidofhttpdprocess] -k rootkill

Rhinox

Re:Proč mi umírá Apache?
« Odpověď #28 kdy: 06. 06. 2016, 19:21:05 »
Mohol by si ten script uverejnit ? rad by som si ho pozrel ...

Je to velice primitivni, dalo by se to udelat efektivneji, ale nechtelo se mi s tim parat...
Kód: [Vybrat]
#!/bin/bash

while true; do

# get % of free memory (only integer part)
freemem=$(free | grep Mem | awk '{print $4/$2 * 100.0}' | cut -d'.' -f1 -)

# set up warning limit
warnmem="50"

# compare
if [ "$freemem" -lt "$warnmem" ]; then
        # less free memory than warning level
        date >> /root/temp/memory.txt
        echo "Free memory:" $freemem "%" >> /root/temp/memory.txt
fi

sleep 1;
done

Pustil sem to pak s "nohup script &" (mam jeste verzi systemd ktera nezabiji procesy po odhlaseni). Nebere to temer zadne cpu, jen kolem 1.5kB RES-pameti. BTW koukam ze dnes mi apache padnul po par hodinach. Tohle mi hlava nepobere!