Linux üzerinde takas alanı (swap)
Takas (swap), Linux çekirdeğinin bellek için bir taşma alanı olarak kullandığı disk alanıdır: nadiren kullanılan bellek sayfaları oraya taşınır, böylece RAM aktif çalışma için boş kalır. Özel bir bölüm veya takas dosyası olabilir ve free -h ile swapon --show komutlarıyla görüntülenir.
1Takas alanı neden hâlâ yararlıdır
Bol miktarda RAM olsa bile takas alanı, çekirdeğin boşta kalan sayfaları bellekten taşımasına olanak tanır ve bellek yetersizliği sonlandırıcısı (OOM killer) süreçleri durdurmadan önce bir arabellek sağlar. Ancak yoğun ve sürekli takas kullanımı, makinenin daha fazla RAM'e veya daha az iş yüküne ihtiyaç duyduğu anlamına gelir.
2Swappiness
Çekirdek ayarı olan vm.swappiness (0-200, varsayılan 60), dosya önbelleğini silmeye kıyasla çekirdeğin ne kadar kolaylıkla takas yapacağını etkiler. Düşük değerler uygulama belleğini daha uzun süre RAM'de tutar. sysctl vm.swappiness ile okunur ve /etc/sysctl.d/ altındaki bir dosyada kalıcı olarak ayarlanır.
3Takas dosyaları
Bir takas dosyası oluşturulur, mkswap ile biçimlendirilir, swapon ile etkinleştirilir ve yeniden başlatmalardan sonra geçerli olması için /etc/fstab dosyasına eklenir. İzinleri 600 olmalıdır.
2 GB'lık bir takas dosyası nasıl eklenir
- Dosyayı oluşturun:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 - Erişimi kısıtlayın:
sudo chmod 600 /swapfile - Biçimlendirin:
sudo mkswap /swapfile - Etkinleştirin:
sudo swapon /swapfile - Kalıcı hale getirin: '/swapfile none swap sw 0 0' satırını
/etc/fstabdosyasına ekleyin - Kontrol edin:
swapon --showvefree -h
Dikkat
- Btrfs üzerinde bir takas dosyası özel hazırlık gerektirir (copy-on-write özelliği kapalı olmalıdır); dağıtımınızın kılavuzunu takip edin.
-
/etc/fstabdosyasındaki bir hata, sistemin açılmasını engelleyebilir: yeniden başlatmadan önce satırı kontrol edin.
İlgili makaleler
- df (disk free)df çıktısının nasıl okunacağı, normal kullanıcılar için Avail sıfırlanmadan Use%'nin neden %100'e ulaşabileceği ve df -i ile inode'ların nasıl kontrol edileceği.
- systemd unit'leri ve systemctlsystemd unit'inin ne olduğu, yaygın unit türleri ve systemctl ile servislerin nasıl başlatılacağı, durdurulacağı, etkinleştirileceği ve inceleneceği.
- du ve ncdu ile disk kullanımıBir Linux diskini neyin doldurduğunu du ve etkileşimli ncdu ile tek bir dosya sisteminde kalma seçenekleriyle nasıl bulacağınızı öğrenin.
Kaynaklar
- swapon(8) man7.org
- mkswap(8) man7.org
- free(1) man7.org
- /proc/sys/vm belgeleri (kernel.org) kernel.org
Son gözden geçirme: