Fórum Root.cz

Hlavní témata => Server => Téma založeno: KeaganIronghast 06. 04. 2020, 12:42:12

Název: Restart určité služby, když je RAM využita na 90%
Přispěvatel: KeaganIronghast 06. 04. 2020, 12:42:12
Ahoj,

jak efektivně udělat script, který by měl restartovat určitou službu, když je RAM z 90% vytížená?
Název: Re:Restart určité služby, když je RAM využita na 90%
Přispěvatel: Miroslav Šilhavý 06. 04. 2020, 12:44:13
Efektivně toto uděláte blbě, protože nejprve si musíte říct, co to vlastně znamená "RAM využita na 90 %", protože typy využití se liší.

Pokud jde o nějakou službu, která sežere RAM, asi by se to mělo řešit jejími limity a o svoje zdraví by se měla postarat sama. Externě (nad službou) to nebude fungovat dobře, to je milionkrát ověřeno v praxi.
Název: Re:Restart určité služby, když je RAM využita na 90%
Přispěvatel: RDa 06. 04. 2020, 12:54:43
Nestacilo by to omezit skrze ulimit ?
Název: Re:Restart určité služby, když je RAM využita na 90%
Přispěvatel: Jose D 06. 04. 2020, 15:46:36
jak efektivně udělat script, který by měl restartovat určitou službu, když je RAM z 90% vytížená?
Neřešilo by to to trochu systematičtěji nastavení MemoryMax=bytes[1] a "Restart=always" v unitě?
Ale jak naznačuje kolega Šilhavý výše, jde jen o workaround, pořádné řešení vypadá zcela jinak.


[1] systemd.resource-control — Resource control unit settings, https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html
Název: Re:Restart určité služby, když je RAM využita na 90%
Přispěvatel: KeaganIronghast 07. 04. 2020, 00:12:53
jak efektivně udělat script, který by měl restartovat určitou službu, když je RAM z 90% vytížená?
Neřešilo by to to trochu systematičtěji nastavení MemoryMax=bytes[1] a "Restart=always" v unitě?
Ale jak naznačuje kolega Šilhavý výše, jde jen o workaround, pořádné řešení vypadá zcela jinak.


[1] systemd.resource-control — Resource control unit settings, https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html

No mně jde o to, že jedna má služba má hroznej memory leak, a já bych potřeboval restartovat jí, při využítí RAM obecně kolem 90%, abych předešel pádu té služby. Je to dočasné řešení, než programátor vyřeší daný leak.
Název: Re:Restart určité služby, když je RAM využita na 90%
Přispěvatel: czmiho 07. 04. 2020, 15:22:33
Jste zoufalý? Tak tady je skript pro zoufalce (13 let stary, ale bude fungovat i ted): https://www.abclinuxu.cz/blog/Mihovy_sochory/2007/3/obraz-cireho-zoufalsvi
Název: Re:Restart určité služby, když je RAM využita na 90%
Přispěvatel: Miroslav Šilhavý 07. 04. 2020, 15:24:34
Jste zoufalý? Tak tady je skript pro zoufalce (13 let stary, ale bude fungovat i ted):

Aneb jak udělat z velkého problému ještě větší :)
Název: Re:Restart určité služby, když je RAM využita na 90%
Přispěvatel: Rhinox 07. 04. 2020, 20:48:46
Treba "monit" tohle dovede...
Název: Re:Restart určité služby, když je RAM využita na 90%
Přispěvatel: _Jenda 08. 04. 2020, 00:20:12
Dát do cronu každou minutu skript s:
Kód: [Vybrat]
m=`free -m | head -n něco | tail -n 1 | tr -s " " | cut -d " " -f něco`
if [ $m -ge 10000 ]; then
  systemctl restart služba
fi
Název: Re:Restart určité služby, když je RAM využita na 90%
Přispěvatel: snuff1987 08. 04. 2020, 06:56:11
Tak ho limituj cez cgroup..