GuiderUtveckling och driftSwap i minnet med zram

Swap i minnet med zram

zram på Debian 13, komprimerad swap som ligger i minnet i stället för på disken, så att en server som får ont om minne saktar in lite i stället för att dränka disken i läsningar och skrivningar, uppsatt med systemds zram-generator på några minuter.

Testad på systemd-zram-generator 1.2.1 på Debian 13 (trixie) på en server hos Melonslab Uppdaterad 26 september 2026

Rekommenderad server för guiden

VC-S Micro · 2 vCPU · 8 GB Minne · 250 GB Lagring

Månadsvis, ingen bindningstid 7 dagars öppet köp

90 kr/mån

Beställ nu
På den här sidan

Det här sätter du upp

Swap är dit Linux flyttar minne som inte har använts på ett tag när minnet börjar ta slut. Swap på disk är långsam, och en server som swappar mycket dränker disken i läsningar och skrivningar, så att allt på servern blir långsamt. zram håller i stället swap i minnet, komprimerad: det som kärnan flyttar dit tar bara en bråkdel av sin storlek, och när det behövs igen slipper servern vänta på disken.

Vi rekommenderar zram i stället för swap på disk. När du bygger en server i kontrollpanelen hos Melonslab låter du swap vara avstängd, och sätter sedan upp zram enligt stegen nedan.

Varje steg nedan har körts på en VC-P Alloy (2 vCPU, 8 GB) hos Melonslab med Debian 13:

  • zram gav servern 7,7 GB swap, komprimerad med zstd.
  • Ett program fyllde 8 GB minne, mer än servern har. 1,5 GB av det flyttades till zram, där det tog 368 MB, ungefär en fjärdedel av sin storlek, och inget program stoppades på grund av minnesbrist.
  • Inställningarna fanns kvar efter en omstart av servern.

1. Kontrollera om det finns swap på disk

Som root:

swapon --show

Kommandot skriver ingenting när servern saknar swap. Om det listar en fil eller en partition stänger du av den och kommenterar bort dess rad i /etc/fstab, så att den förblir avstängd efter en omstart:

swapoff -a
sed -i '/\sswap\s/s/^/#/' /etc/fstab

Om det var en fil, till exempel /swapfile, kan du ta bort den efteråt med rm /swapfile.

2. Installera zram-generator

apt update
apt install -y systemd-zram-generator

Paketet slår på zram direkt, med Debians standardinställningar: halva minnet, högst 4 GB, komprimerat med kärnans standardalgoritm lz4. Nästa steg ersätter dem.

3. Välj storlek och komprimering

Skapa /etc/systemd/zram-generator.conf:

[zram0]
zram-size = min(ram, 8192)
compression-algorithm = zstd

zram-size anges i megabyte: lika mycket som serverns minne, högst 8 GB, vilket är Fedoras standard. Värdet anger hur mycket som kan flyttas till zram innan det komprimeras, inte hur mycket minne det tar. zstd komprimerar bättre än lz4, mot lite mer processortid.

Skapa sedan /etc/sysctl.d/99-zram.conf:

vm.swappiness = 180
vm.page-cluster = 0

Ett värde på vm.swappiness över 100 talar om för kärnan att det är billigare att swappa till zram än att släppa filer ur cachen, vilket kärnans dokumentation föreslår för swap i minnet. vm.page-cluster = 0 hindrar kärnan från att läsa i förväg ur swap, vilket hjälper på en disk men bara är onödigt arbete i minnet.

4. Starta om och kontrollera

Den nya storleken och komprimeringen gäller först när zram sätts upp igen, så starta om servern:

systemctl reboot

Logga in igen och kontrollera:

swapon --show
zramctl

swapon --show listar /dev/zram0 som enda swap, och zramctl visar zstd under ALGORITHM. När minnet är hårt belastat visar DATA hur mycket som har flyttats till zram, och COMPR hur mycket minne det tar:

NAME       ALGORITHM DISKSIZE  DATA  COMPR  TOTAL STREAMS MOUNTPOINT
/dev/zram0 zstd          7.7G  1.5G 368.3M 379.8M       2 [SWAP]

Felsökning

zramctl visar lz4 och halva minnet. zram körs fortfarande med standardinställningarna från när du installerade paketet. Starta om servern, som i steg 4.

swapon --show listar fortfarande swap på disk efter en omstart. Dess rad i /etc/fstab är fortfarande aktiv. Gör om steg 1 och starta om.

Kör det på din egen server

VC-S Micro

90 kr/mån

vCPU
2
Minne
8 GB
Lagring
250 GB
Trafik
10 TB
Standard
HDD · RAID 10
  • Full root-åtkomst
  • Nativt /64 IPv6
  • RAID-skyddad lagring
  • Malmö, Sverige
  • Månadsvis, ingen bindningstid
  • 7 dagars öppet köp
Alla guider