Düşük RAM'li VPS'lerde disk takas (swap) yavaşlığını ve OOM Killer çökmelerini engelleyin; Zstandard ve LZ4 sıkıştırmasıyla fiziksel belleğinizi 2 ila 3 kat daha verimli kullanın.
4 GB ve altı RAM'e sahip sunucularda veya yavaş diskli bulut VPS'lerde zRAM önerilir. Disk I/O darboğazını tamamen ortadan kaldırarak RAM'i sıkıştırılmış sanal bir blok aygıtı olarak genişletir.
2 GB fiziksel RAM'den elde edilen kullanılabilir hacim
ZSTD algoritması ile veri sıkıştırma kazancı
RAM tükenmeden soğuk veriyi sıkıştırma havuzuna yönlendirir
0 = Disk I/O kümeleme kapalı (sıfır gecikme)
#!/usr/bin/env bash
set -e
echo ">>> 1. zram-generator paketini kurun:"
if command -v apt-get &>/dev/null; then
sudo apt-get update && sudo apt-get install -y systemd-zram-generator
elif command -v dnf &>/dev/null; then
sudo dnf install -y zram-generator
fi
echo ">>> 2. /etc/systemd/zram-generator.conf dosyasını oluşturun:"
sudo tee /etc/systemd/zram-generator.conf > /dev/null << 'EOF'
[zram0]
zram-size = 2048
compression-algorithm = zstd
swap-priority = 100
fs-type = swap
EOF
echo ">>> 3. Çekirdek sysctl parametrelerini kaydedin:"
sudo tee /etc/sysctl.d/99-zram-tuning.conf > /dev/null << 'EOF'
vm.swappiness = 150
vm.page-cluster = 0
vm.vfs_cache_pressure = 50
EOF
sudo sysctl --system
echo ">>> 4. zRAM servisini başlatın:"
sudo systemctl daemon-reload
sudo systemctl start /dev/zram0
Linux sunucularda RAM tükendiğinde işletim sistemi verileri diske (klasik swap dosyası) yazmaya başlar. En hızlı NVMe sürücüler bile fiziksel RAM'den 100 kat daha yavaştır (milisaniye vs nanosaniye). Disk I/O kuyruğu %100 seviyesine fırlar, CPU "iowait" durumunda kilitlenir ve Nginx/MySQL istekleri yanıtlayamaz hale gelir.
zRAM, Linux çekirdeğinde RAM içerisinde sıkıştırılmış sanal bir blok cihazı (/dev/zram0) oluşturur. Bellek dolmaya başladığında veriler diske değil, CPU'nun Zstandard (zstd) veya LZ4 algoritmasıyla sıkıştırdığı bu sanal RAM alanına aktarılır. Ortalama 2.5x - 3.0x sıkıştırma sayesinde 2 GB RAM'e sahip bir sunucu, disk gecikmesi yaşamadan yaklaşık 4-5 GB veri tutabilir.
zswap, halihazırda disk takas alanı bulunan ve 4 GB üzeri belleğe sahip sunucularda disk swap'in önüne geçen bir çekirdek filtresidir. Diske gidecek sayfaları önce RAM'de sıkıştırarak tutar. Yalnızca bellek çok fazla sıkıştığında en soğuk (nadiren kullanılan) sayfaları diske yazar. Bu sayede LRU tersine dönmesi (inversion) engellenir ve aktif uygulamalar her zaman en hızlı bellekte kalır.
Klasik sabit disklerde sıralı okuma avantajı sağlamak için Linux varsayılan olarak her defasında 8 sayfayı (2^3 = 8) birden okur. Ancak zRAM tamamen bellek içi olduğundan, 8 sayfalık küme okuması gereksiz CPU yükü ve gecikme yaratır.vm.page-cluster = 0 yapılarak çekirdeğin tam ihtiyaç duyulan tek bir sayfayı anında getirmesi sağlanır.