Adott egy otthoni gép 16.04-es Ubuntuval, több párhuzamosan használt felhasználói fiókkal, és lusta felhasználókkal, akiknél állandóan több száz fül aktív a böngészőben. Emellett sokszor nagyobb táblázatokat, képekkel megtűzdelt szövegeket szerkesztenek. Felmerült a plusz memória vásárlása, vagy a szoftveres megoldás. Mivel a memória pénzbe kerül, hobbiprojektként megnézem a ZRAM-ot.
Probléma még a nagyobb Firefox profilok lemezre szinkronizálása, jó lenne ezt is memóriában tartani és csak a változásokat szinkronizálni le a lemezre a fél-1GB-os profilok folyamatos periodikus mentegetése helyett, mert még néha az SSD-n is belassul a rendszer az IO ütközés miatt (erre a Mozillánál kitalálhattak volna jobb megoldást). Ez lesz a következő lépés.
Hardver: i5-ös processzor, 8GB memória, 240GB-os SSD
Lépések
a /tmp már a memóriába került, a
/etc/fstab
-ba beírt sorral:
tmpfs /tmp tmpfs defaults,nodev,nosuid,noatime,size=2G,mode=1777 0 0
Ezután "misztikus módon" néha egyes programok működése megszakadt. A logok szerint a /tmp betelt, így megnöveltem a méretét 3GB-ra:
tmpfs /tmp tmpfs defaults,nodev,nosuid,noatime,size=3G,mode=1777 0 0
Ellenőrizzük, hogy mi az SSD rendszerlemez ütemezője:
cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
Vegyes (SSD+HDD rendszeren) a [deadline] a jó válasz.
Cache kezelése:
cat /proc/sys/vm/swappiness
60
ez sok, csökkentsük 10-re:
sudo sysctl vm.swappiness=10
vm.swappiness = 10
ellenőrizzük vissza:
cat /proc/sys/vm/swappiness
10
cat /proc/sys/vm/vfs_cache_pressure
100
Optimalizáljuk 50-re:
sudo sysctl vm.vfs_cache_pressure=50
vm.vfs_cache_pressure = 50
ellenőrizzük vissza:
cat /proc/sys/vm/vfs_cache_pressure
50
majd véglegesítsük az alábbi konfigurációs állományba beszúrva ezeket:
sudo nano /etc/sysctl.conf
...
# SWAP optimalizálás
vm.swappiness = 10
vm.vfs_cache_pressure=50
...
ZRAM telepítése:
sudo apt install zram-config
sudo wget https://raw.githubusercontent.com/gionn/etc/master/init.d/zram
sudo mv ./zram /etc/init.d
sudo chmod +x /etc/init.d/zram
sudo update-rc.d zram defaults
/etc/init.d/zram start
[ ok ] Starting zram (via systemctl): zram.service.
nézzük meg a logban, hogy rendben elindult-e:
dmesg | tail
[263652.260545] zram: Added device: zram2
[263652.260802] zram: Added device: zram3
[263652.267584] zram0: detected capacity change from 0 to 2044854272
[263652.268856] zram1: detected capacity change from 0 to 2044854272
[263652.270575] zram2: detected capacity change from 0 to 2044854272
[263652.271694] zram3: detected capacity change from 0 to 2044854272
[263652.288757] Adding 1996926k swap on /dev/zram0. Priority:100 extents:1 across:1996926k SSFS
[263652.292423] Adding 1996926k swap on /dev/zram1. Priority:100 extents:1 across:1996926k SSFS
[263652.293405] Adding 1996926k swap on /dev/zram2. Priority:100 extents:1 across:1996926k SSFS
[263652.295260] Adding 1996926k swap on /dev/zram3. Priority:100 extents:1 across:1996926k SSFS
nézzük meg, mennyi szabad memóriánk van most:
free -g
total used free shared buff/cache available
Mem: 7 4 1 1 1 2
Swap: 39 2 37
Ellenőrizzük a swap felosztását is:
swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 33554428 4102948 -1
/dev/zram0 partition 1996926 0 100
/dev/zram1 partition 1996926 0 100
/dev/zram2 partition 1996926 0 100
/dev/zram3 partition 1996926 0 100
A 32GB-os swap partícióhoz jól látszik, hogy csatlakozott a négy blokk ZRAM swap is.
Tesztelés alatt, folytatása következik.