Fórum Root.cz
Hlavní témata => Software => Téma založeno: scientific 06. 06. 2021, 22:47:17
-
Ahoj, snažím se omezit aplikaci memory limitem přes cgroups.
Dělám to takto:
sudo yum install libcgroup-tools
sudo cgcreate -t user:group-a user:group -g memory:/cgApp
sudo echo $(( 2048 * 1024 * 1024 )) | sudo tee /sys/fs/cgroup/memory/cgApp/memory.limit_in_bytes #2 GB RAM
Zde je komplikace oproti manuálu, který říká:
cgexec -g memory:cgApp App
Jenže takhle já aplikaci nespouštím, nýbrž takto:
cd /home/user/app/ && . ./run
Jenže jak to spustit přes cgexec? Takto mi to nefunguje:
cgexec -g memory:cgApp 'cd /home/user/app/ && . ./run'
Jak ten cgexec prosím použít správně? Děkuji.
PS: Dal jsem to do špatné kategorie, omlouvám se, snad to tu někdo najde. :-)
-
Takto mi to funguje parádně:
cgexec -g memory:cgApp ls -la
Takto mi to ale bohužel nefunguje:
cgexec -g memory:cgApp 'cd /home/user/app/ && . ./run'
-
Takto mi to funguje parádně:
cgexec -g memory:cgApp ls -la
Takto mi to ale bohužel nefunguje:
cgexec -g memory:cgApp 'cd /home/user/app/ && . ./run'
no to druhé má dělat co? cd se může udělat před cgexec a pak . ./run udělá "source run", teda vezme z toho skriptu run (jestli to je skript) jen proměnné shellu
nemá tam být jen ./run teda bez té první tečky? aby se pustil?
-
no to druhé má dělat co? cd se může udělat před cgexec a pak . ./run udělá "source run", teda vezme z toho skriptu run (jestli to je skript) jen proměnné shellu
To neni pravda, ono to celej skript vykona vcetne prikazu v aktualni session. Tj. nastavi to i funkce krome promennych.
Neco jako import/include/require v jinych jazycich.
-
máte pravdu, ale stejně by se to asi mohlo pustit jen ./run
u . ./run bych viděl přínos jen v tom, jestli potom nějaký jiný program bude využívat ty nastavené proměnné, ale to pravděpodobně nebude ten případ
-
joo, vlastně jsem chtěl jen source, máš pravdu.
Ale jak to použít například na firefox?
Spouštím ho takto:
DISPLAY=:0 firefox
Ale tak, jak bych očekával že to půjde to bohužel nejde:
[localuser@localhost ~]$ cgexec -g memory:cgFirefox6GB DISPLAY=:0 firefox
No such file or directory
[localuser@localhost ~]$
Děkuji za tip se source a prosím o tip ještě s firefoxem, pak s tímhle už dám pokoj. :-) Díky moc.
-
no ten DISPLAY je proměnná shellu, buď na začátek řádku
DISPLAY=:0 cgexec -g memory:cgFirefox6GB firefox
nebo to dát jako export
export DISPLAY=:0
cgexec -g memory:cgFirefox6GB firefox
na ten problém s cache ale cgroups nepůjdou použít, cache alokuje systém, ne program
-
Jasný no, jsem máslo. Ale jsem rád, že o cgroup vím, však ono se to bude někdy určitě hodit. Díky. :-)