Zram / Ubuntu 16 x64

 ( log69 | 2017. szeptember 15., péntek - 22:07 )

8 GB RAM van a gépemben, viszont nincs swap partícióm, swap file-t meg nem támogat BtrFS:

https://btrfs.wiki.kernel.org/index.php/FAQ#Does_btrfs_support_swap_files.3F

Egy játékot akartam indítani, amely elment swap mellett, viszont a rendszer befagy / belassul swap nélkül. Értem hogy kicsit több mem kéne, vagy pedig hely kilapozni pár dolgot.

Nem akarok swap-ot, ezért kutattam. Rátaláltam Zram-ra. Nagyon jó. Tömöríti a memóriát, de csak akkor, ha swap-ba menne. Tehát közel nulla erőforrást foglal.

sudo apt install zram-config

+ egy reboot és kész.


Tömörítés mértékének megállapításához:

cat /sys/block/zram*/orig*
48594944
48951296
49217536
49115136
0
0

cat /sys/block/zram*/compr*
8056527
7995485
8059768
8178389
0
0

Eszköz a tömörítési arány printeléséhez (a Ruby verziónál az utolsó sorba tegyetek egy " if orig > 0" kódot hogy ne osszon nullával):

https://gist.github.com/pcarrier/3783415

Általam javított:

http://paste.ubuntu.com/25542577/

Jelenleg 18%-ra nyomta le a memória tartalmát. Ez több mint 5x tömörítés.

A játék flottul megy, semmi rendszer belassulás vagy akadás.


Nézegetem virtualizációval terhelve. Indítottam 3 virtuális gépet: Win10 (3.6G ram), WinXP (2G), Linux live (2G)

Processzor (%, 4 mag) és memória (MB) terhelésem ekkor:

free -h
              total        used        free      shared  buff/cache   available
Mem:           7.7G        7.0G        141M        154M        577M        259M
Swap:          3.9G        2.1G        1.7G

./zramratio.rb 
zram0:  22.00% (348.00 MiB -> 79.00 MiB)
zram1:  22.00% (348.00 MiB -> 79.00 MiB)
zram2:  22.00% (349.00 MiB -> 79.00 MiB)
zram3:  22.00% (348.00 MiB -> 79.00 MiB)

Vagyis 4.5x tömörítés. Engem meggyőzött.


3.14-es kernel óta támogatott:

https://en.wikipedia.org/wiki/Zram

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

subscribe

-----
„Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben.”
rand() a lelke mindennek! :)
Szerinted…

Az ilyen blog bejegyzéseket jó olvasni :)

+1

+1

+1

16 Gb ram van itthon. Múlt héten döcögött a rendszer, még épp sikerült elkapni. Kevés volt a memória.
Eddig nem érdekelt ez a téma, mert azt hittem ezek a megoldások mindig tömörítenek.
Köszi.

(Mi az isten van már ezekkel a rendszerekkel, hogy 8 GB memória nem elegendő nekik???)

=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?

Modern 3D-s játékról van szó. Egyébként olyan 5G-t eszik (resident 4.3G, virtual 5.8G), csak valamiért kell a rendszernek a lapozás. Azt sejteném, hogy nem tud egy memória lapot lefoglalni egyben.

sub
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.

Slackware Linux 14.2 | 4.4.37-janos

Remek, köszi! Egy régi laptopom (2G RAM) használhatóságán sokat javított. A script helyett van beépített utility: zramctl. Ezzel is ki lehet íratni a státuszt, csak százalékot nem számol.

--
Soli Deo Gloria

Megjegyzem, nézem különböző terhelésnél a tömörítési rátát és 3-5-szörös között mozog, 3-szorosnál kisebb értéket még nem láttam.

Az LZ4 tömörítést nem próbáltad?
Kíváncsi lennék a tapasztalatokra!

Éss, esetleg szerver környezetben is érdekes lehet?

Gondolok itt az én esetemben olyan VM-ekre, amelyek éjfél táján vírust kerget (clamav), vagy spamdb-t inicializál, vagy épp backupot mozgat odavissza (joóó, ez pont nem memória igényes feladat)?
Pár w3bszerverről visít a monitoring backup-időben, hogy kevés a swap pöppet kezd megtelleni.

Éles környezetben nem kívánok tesztelni, esetleg van-e ilyen tapasztalat?

----------------------------------------
o.-

Úgy működik ugye, hogy ha futsz ki a ram-odból, akkor zram-ot kezdi el használni a rendszer, és ha abból is futsz ki, akkor pedig a normál swap-ot.

Szerintem úgy kell tekinteni rá, hogy a memóriád egy részét megtöbbszörözi (3-5x) bizonyos sebesség vesztés ellenében. Nyilván a legjobb megoldás a memória bővítés, de ha a jelenlegi memóriád tetejét súrolod az esetek legtöbbjében és nem akarsz memóriát bővíteni, akkor ez egy jó megoldás lehet.