On 2.4.2021 12:01, Miroslav Lachman wrote:
<2>1 2021-03-25T14:46:41.725626+01:00 xxx.example.com kernel - - - swap_pager_getswapspace(11): failed

Otazka tedy zni, jakym nastavenim v systemu bych mohl zajistit, aby zadny proces nemohl pouzit vic nez X MB swapu a pokud se o to pokusi, tak aby ho system sestrelil?

Hacek je, ze zadny proces swap nepouziva. Proces proste pozaduje pamet a dostane (pripadne nedostane) ji. To, ktera cast virtualni pameti je aktualne mapovana v pameti fyzicke, ktera ve swapu - a ktera pripadne nikde je primarne zalezitost OS, byt' proces to za urcitych okolnosti muze castecne ovlivnit (madvise, RLIMIT_RSS)..

Uvedom si, ze proces muze zalezt do hloubeji swapu nikoliv jen tim, ze hce nejakou pamet, ale docela klidne tim, ze pamet zacne ve vetsi mire pouzivat uplne jiny proces a OS usoudi, ze neuzivanou cast pameti tohoto procesu myze vyswapovat. Proces tak ke zvysenemu uzivani swapu muze prijit jak "slepej k houslim", dokocne v ty chvili ani nemusi bezet (a dokonce je to prave v takovem pripade pravdepodobnejsi).

To po cem volas tak neprinese ten vysledek ktert bysis pral.

Zdroje procesu lze limitovat co se tyce mnozstvi pameti, ktere proces smi pouzivat, nikoliv vsak podle toho, kde se ta pamet vezme (man setrlimit / RLIMIT_DATA a pripadne RLIMIT_MEMLOCK).

Ve vztahu ke swapu muzes prohlasit proces za chraneny (man protect) a tim zabranit tomu, aby byl pri "swap exhausted" zabit. Dale muzes pro jednotlivy proces nastavit velikost pameti pri jejimz prekroceni bude "pamet nad limit" ochotneji odswapovavana (man setrlimit / RLIMIT_RSS).

Muzes omezit mnozstvi SWAPu pouzite v souctu vsemi procesy jednoho uzivatele (man setrlimit / RLIMIT_SWAP), ale jednak nejprve musis zmenit defaultni hodnotu vm.overcommit a druhak, je to per uzivatel, nikoliv per proces.


A obdobny problem mam i na FreeBSD desktopu, kdy se cas od casu zblazni browser a zacne zrat velmi rychle zcela nesmyslne mnozstvi pameti

Omez mu mnozstvi pameti, neres specificky swap.

On 2.4.2021 15:25, Marek SOUDNY wrote:
Mne system po chvili ten nenazranej proces ukonci

Pravdepodobne, ale nikoliv nutne.

Obet systemu nemusi byt nejaktivnejsi proces, jakkoli to je pomerne rpavdepodobne, ale muze to byt i nejaky hodny a skromny proces, ktery mel proste jen tu smulu, ze ackoliv pameti nikdy moc nechce, zrovna ted si o tu svoji trochu rekl v nevhodnou chvili ...



Dan


--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem