No nevim... Minulou zimu mi kvuli tomu velice casto mrzly servery, kdyz jim zacala dochazet ramka. I ze svyho notebooku jsem to odstranil ze stejneho duvodu. Myslim, ze OOM killer je lepsi nez zatuhly jadro. Asi bude jeste trvat, nez s timhle zacnu znova experimentovat...
On ten zswap má nastavovací max_pool_percent, nemá se dávat moc vysoko. Kromě toho se dá zvolit zswap=zbud (výchozí jen 2x komprese), z3fold (3x) nebo zsmalloc (asi nejlepší?). Záleží na zátěži. Zabít zlobivý proces je asi vždy nejlepší.
18. 11. 2019, 18:26 editováno autorem komentáře
Pouzival jsem nasledujici:
zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20 zswap.zpool=z3fold
70GB RAM, 8GB klasicky swap na disku,
asi 30GB RAM byl limit pro ZFS ARC (=vic. nez 30GB RAM se na cache nepouzilo), ale padal i notas kde ZFS nebylo...
Já zswap používám na notebooku s integrovanými 2GB RAM (bez swapu) a tam to pomáhá, odezva je rychlejší než bez něj a s klasickým swapem. Tak asi je zswap vhodnější pro málo RAM.
Naopak, tak je to IMHO dobře (má-li nižší prioritu).
Kdyby tu swap na fyzickém médiu nebyl a spoléhali jsme se jen na zswap, bylo by to koledování si o problém. Zvlášť s agresivním swappiness. Pak se snadno může stát, že:
1. Systém se rozhodne, že má málo RAM.
2. Systém něco chce odložit do swapu, tak vybere nějakou stránku.
3. Systém potřebuje najít místo, kam do RAM uložit. Jenže má málo RAM…
Je to o to větší problém, pokud se vybere něco, co není dobře komprimovatelné.
Zvláštne, minulú zimu u nás takmer nemrzlo. Zswap mám takmer všade (server, desktop, 2xnotebook, desktop v práci, popri ňom využívam swap v zram s vyššou prioritou ako na železe. max_pool_percent nastavujem väčšinou na menšie hodnoty, zswap v zram partícii funguje lepie ako zswap cez zbud, pri z3fold mi padal celý systémm a zsmalloc som zatiaľ pre nedostatok času neskúšal.
Na malom nebooku s 2GB RAM (bez možnosti rozšírenia) je OOMkiller na 2 veci, keďže webový prehliadač zaberá 80% RAM a zrovna ten presne vtedy potrebujem. Momentálne to vyzerá takto:
VisionBook ~ # swapon -v
NAME TYPE SIZE USED PRIO
/dev/mmcblk0p2 partition 2G 0B 10
/dev/zram4 partition 768M 107M 16383
VisionBook ~ # zramctl
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram4 zstd 768M 28K 17,5K 40K 4 [SWAP]
/dev/zram3 zstd 256M 196K 2K 84K 4 /mnt/davfs2.cache
/dev/zram2 zstd 2G 1,1M 12,5K 96K 4 /var/tmp/genkernel
/dev/zram1 zstd 2G 1,1M 14,1K 140K 4 /tmp
Takže 107 MB swapu mi zaberá cca 40kB RAM a to je podobná hodnota ako som mal v 80-tych rokoch na ZX Spectru.