piatok 6. marca 2020

overcommit a aplikácie


kde bolo, tam bolo, bola raz jedna Java. :-)





V ideálnom svete, kde máme mnoho konceptuálnych modelov a iné veci, by bolo všetko ružové. To znamená, že aplikácia by si zobala toľko pamäte, koľko potrebuje.

Ale máme tu tvrdý svet, kde tieto zákony neplatia.



V skutočnosti aplikácia chce od operačného systému viac pamäte, ako môže využívať pre prípad núdze. Niekedy sa stáva, že to zožerie celý OS. (áno, RAM sa chce rozdať.)

Aby niečomu takému predošlo, pošleme požiadavku jadru, aby tomu tak nebolo.

Overcommit znamená nadmerný záväzok a my poprosíme jadro, aby si to všímalo.



Všetko sa rieši v /proc/sys/vm/overcommit_memory a v /proc/sys/vm/overcommit_ratio

(vlastne len nasmerujeme tú hodnotu, ktorú tam chceme mať)

echo 2 > /proc/sys/vm/overcommit_memory

tu je to v percentách
echo 75 > /proc/sys/vm/overcommit_ratio


Keďže to môže platiť len do rebootu, nastavme to aj v sysctl. Aby posielal jadru rovno po boote inštrukcie:

(v tom config to môžeme upraviť a potom cez sysctl -p "reštartovať", to znamená, že načíta dáta z configuračného súboru)

[root@malyprinc ~]#  cat /etc/sysctl.conf | grep -i commit
vm.overcommit_memory = 2
vm.overcommit_ratio = 50

tu uvidíme zoznam:
[root@velkedievca ~]# sysctl -a | grep -i commit
vm.overcommit_memory = 2
vm.overcommit_ratio = 50





Žiadne komentáre:

Zverejnenie komentára