Linuxban az ulimit parancs miért így viselkedik?
A virtuális memória a folyamat teljes felhasznált memóriájára vonatkozik mindennel együtt. Ha eléri a maximálisan lefoglalható memóriát (hard limit), a folyamatnak nincs módja többet foglalni. (hacsak nem root-ként idult, ahogy azt már felettem is írták)
A max memory size az RSS-re (resident set size) vonatkozik, ami gyakorlatilag azt mondja meg, hogy a fizikális memóriából mekkora rész jut a folyamatnak. Kisebb mérettel is el tud futni, mert amit használ betölti a fizikai memóriába, a többi megy a swap-be.
A "man setrlimit" viszont ezt dobja ki:
[...]
RLIMIT_RSS
Specifies the limit (in pages) of the process's resident set
(the number of virtual pages resident in RAM). This limit has
effect only in Linux 2.4.x, x < 30, and there affects only calls
to madvise(2) specifying MADV_WILLNEED.
[...]
Tehát a mostani kerneleken már nincs hatása.
Köszi a válaszokat.
Kipróbáltam root-ként is. Arra is vonatkozik, de az megnövelheti vagy akár vissza is állíthatja unlimited-re. Ha nem root akkor meg csak csökkentheti a limitet.
ulimit eléggé outdated. Manapság a cgroups az etalon, és amit azzal beállítasz, tuti semmi sem lépi át.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!