Giriş: Swap Alanı Nedir ve Neden İhtiyaç Duyarız?
Rocky Linux 9, kararlı ve güvenilir bir işletim sistemi olmakla birlikte, zaman zaman sistem performansını artırmak veya bellek yetersizliği sorunlarını gidermek için ek yapılandırmalara ihtiyaç duyabilir. Bu yapılandırmalardan biri de “swap alanı” eklemektir.
Swap Alanı Tanımı ve Önemi
Swap alanı (takas alanı), bilgisayarınızdaki fiziksel RAM (Rastgele Erişim Belleği) dolduğunda, işletim sisteminin nadiren kullanılan bellek sayfalarını depolamak için kullandığı sabit disk üzerindeki özel bir alandır. Bir nevi sanal bellek görevi görür. RAM’iniz tamamen dolduğunda ve sistemin daha fazla belleğe ihtiyacı olduğunda, Linux çekirdeği (kernel) en az kullanılan bellek bloklarını swap alanına taşır. Bu sayede, daha aktif olan uygulamalar ve işlemler için fiziksel RAM boşaltılmış olur.
Swap alanı, sisteminizi bellek yetersizliğinden kaynaklanan çökmelerden veya donmalardan koruyabilir. Özellikle yoğun bellek kullanan uygulamalar çalıştırırken (örneğin, büyük veritabanları, sanallaştırma yazılımları, video düzenleme araçları veya derleme işlemleri) veya düşük RAM’e sahip sunucularda swap alanı hayati öneme sahip olabilir. Ancak, sabit diskler RAM’den çok daha yavaş olduğu için, swap alanının aşırı kullanımı sistem performansında belirgin bir düşüşe neden olabilir. İdeal olan, sisteminizin mümkün olduğunca RAM’i kullanmasıdır.
Önkoşullar
Bu rehberdeki adımları uygulayabilmek için aşağıdaki önkoşullara sahip olmanız gerekmektedir:
- Rocky Linux 9 işletim sistemi yüklü bir sunucu veya bilgisayar.
rootkullanıcısı erişimi veyasudoyetkilerine sahip bir kullanıcı.- Yeterli boş disk alanı.
Mevcut Swap Alanını Kontrol Etme
Yeni bir swap alanı eklemeden önce, sisteminizde zaten bir swap alanı olup olmadığını ve ne kadarının kullanıldığını kontrol etmek iyi bir adımdır. Bunun için birkaç farklı komut kullanabiliriz:
free -h Komutu
Bu komut, sisteminizdeki toplam, kullanılan ve boş fiziksel bellek (RAM) ve swap alanı hakkında özet bir bilgi sağlar. -h (human-readable) bayrağı, çıktıları okunması daha kolay bir formatta (GB, MB gibi) gösterir.
free -h
Örnek Çıktı:
total used free shared buff/cache available
Mem: 7.7Gi 1.2Gi 5.2Gi 8.0Mi 1.3Gi 6.3Gi
Swap: 0B 0B 0B
Yukarıdaki örnek çıktıda, “Swap:” satırı altında “0B” (0 Bayt) görüyorsanız, sisteminizde şu anda etkin bir swap alanı bulunmamaktadır.
swapon --show Komutu
Bu komut, sistemde etkin olan tüm swap cihazlarını ve dosyalarını listeler.
swapon --show
Eğer herhangi bir çıktı görmüyorsanız veya çıktı boşsa, sisteminizde etkin bir swap alanı yoktur.
Örnek Çıktı (eğer swap varsa):
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -2
cat /proc/swaps Komutu
Bu komut, Linux çekirdeğinin swap alanı hakkında tuttuğu bilgileri doğrudan gösterir.
cat /proc/swaps
Eğer çıktıda başlık satırı dışında başka bir satır yoksa, sisteminizde etkin bir swap alanı bulunmamaktadır.
Örnek Çıktı (eğer swap varsa):
Filename Type Size Used Priority
/swapfile file 2097148 0 -2
Bu kontrollerden herhangi biri sisteminizde etkin bir swap alanı olmadığını gösteriyorsa, bir sonraki adıma geçerek bir swap dosyası oluşturabilirsiniz.
Swap Dosyası Oluşturma ve Etkinleştirme
Rocky Linux 9’da swap alanı oluşturmanın en yaygın ve esnek yolu, bir swap dosyası kullanmaktır. Bu yöntem, ayrı bir disk bölümü oluşturmaya gerek kalmadan mevcut bir dosya sistemi üzerinde swap alanı tanımlamanıza olanak tanır.
Adım 1: Swap Dosyası Oluşturma
dd komutunu kullanarak belirli bir boyutta boş bir dosya oluşturacağız. Bu dosyayı genellikle kök dizinde /swapfile olarak adlandırmak yaygın bir pratiktir.
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
sudo dd: Komutu yönetici yetkileriyle çalıştırır.if=/dev/zero: Giriş dosyası olarak sıfırlarla dolu sanal bir cihazı kullanır. Bu, oluşturulacak dosyanın içeriğini sıfırlarla doldurur.of=/swapfile: Çıktı dosyası olarak/swapfileadında bir dosya oluşturulacağını belirtir.bs=1M: Blok boyutunu 1 Megabayt olarak ayarlar.count=2048: 2048 adet 1MB’lık blok yazılacağını belirtir, bu da toplamda 2048 MB (2 GB) bir dosya oluşturur.
Swap Alanı Boyutu Seçimi: Ne kadar swap alanı eklemeniz gerektiği, sisteminizin RAM miktarına ve kullanım senaryonuza bağlıdır. Genel tavsiyeler şunlardır:
- RAM miktarı 2 GB’tan az ise: RAM’in 2 katı kadar swap.
- RAM miktarı 2 GB ile 8 GB arasında ise: RAM ile aynı miktarda veya RAM’in 1.5 katı kadar swap.
- RAM miktarı 8 GB’tan fazla ise: RAM’in yarısı kadar veya en az 2-4 GB swap.
Örneğin, 4 GB swap alanı oluşturmak isterseniz count=4096 kullanmalısınız.
Adım 2: Swap Dosyası İzinlerini Ayarlama
Swap dosyasının yalnızca root kullanıcısı tarafından okunabilir ve yazılabilir olması güvenlik açısından kritik öneme sahiptir. Diğer kullanıcıların bu dosyaya erişimini engellemek için izinleri 600 olarak ayarlamalıyız.
sudo chmod 600 /swapfile
Bu komut, /swapfile için okuma ve yazma izinlerini yalnızca dosyanın sahibine (root) verir.
Adım 3: Swap Alanını Başlatma
Oluşturduğumuz dosyayı bir swap alanı olarak kullanıma hazırlamak için mkswap komutunu kullanmalıyız.
sudo mkswap /swapfile
Bu komut, dosyayı bir swap alanı formatına dönüştürecektir.
Örnek Çıktı:
Setting up swapspace version 1, size = 2 GiB (2147483648 bytes)
no label, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Adım 4: Swap Dosyasını Etkinleştirme
Şimdi oluşturduğumuz ve formatladığımız swap dosyasını sistemde etkinleştirebiliriz.
sudo swapon /swapfile
Adım 5: Doğrulama
Swap alanının başarıyla eklendiğini doğrulamak için daha önce kullandığımız komutlardan birini tekrar çalıştırabiliriz:
free -h
veya
swapon --show
Artık “Swap:” satırında veya swapon --show çıktısında yeni eklediğiniz swap alanının boyutunu görmelisiniz.
Örnek Çıktı (free -h):
total used free shared buff/cache available
Mem: 7.7Gi 1.2Gi 5.2Gi 8.0Mi 1.3Gi 6.3Gi
Swap: 2.0Gi 0B 2.0Gi
Swap Alanını Kalıcı Hale Getirme
Yukarıdaki adımlar, swap alanını yalnızca mevcut oturum için etkinleştirir. Sistemi yeniden başlattığınızda, swap alanı otomatik olarak etkinleşmeyecektir. Swap alanının her yeniden başlatmada otomatik olarak etkinleşmesini sağlamak için /etc/fstab dosyasına bir giriş eklememiz gerekir.
/etc/fstab Dosyasını Düzenleme
/etc/fstab dosyası, Linux sisteminin önyükleme sırasında hangi dosya sistemlerini nereye bağlayacağını belirleyen yapılandırma dosyasıdır. Bu dosyayı düzenlemek için bir metin düzenleyici kullanabiliriz, örneğin nano veya vi.
sudo nano /etc/fstab
Dosyanın sonuna aşağıdaki satırı ekleyin:
/swapfile none swap sw 0 0
Bu satırın anlamı:
/swapfile: Swap dosyasının yolu.none: Swap dosyaları için bağlama noktası yoktur.swap: Bu girişin bir swap alanı olduğunu belirtir.sw: Swap için özel seçenekleri belirtir (genellikle yeterlidir).0: Dump seçeneği. Dosya sisteminin önyükleme sırasındadumpkomutuyla yedeklenip yedeklenmeyeceğini belirler. Genellikle swap alanları için 0 olarak ayarlanır.0: Pass seçeneği. Dosya sistemi kontrolü sırasındafsckkomutuyla kontrol edilip edilmeyeceğini belirler. Swap alanları için 0 olarak ayarlanır.
Değişiklikleri kaydedin ve metin düzenleyiciden çıkın (Nano için: Ctrl+O, Enter, Ctrl+X).
Önemli Not: /etc/fstab dosyasında hatalı bir giriş yapmak sisteminizin önyükleme yapmamasına neden olabilir. Değişiklikleri yaparken dikkatli olun ve mümkünse düzenlemeden önce dosyanın bir yedeğini alın: sudo cp /etc/fstab /etc/fstab.bak.
Değişiklikleri Kontrol Etme (Yeniden Başlatmadan Önce)
Sistemi yeniden başlatmadan önce /etc/fstab dosyasındaki yeni girdinin doğru çalıştığından emin olmak için tüm dosya sistemlerini (swap dahil) yeniden yüklemeyi deneyebilirsiniz:
sudo swapon -a
Bu komut, /etc/fstab dosyasındaki tüm swap girdilerini okur ve henüz etkin olmayanları etkinleştirir. Herhangi bir hata mesajı almazsanız, girişinizin doğru olduğunu varsayabiliriz.
Artık sisteminizi yeniden başlattığınızda swap alanı otomatik olarak etkinleşecektir.
Swap Alanını Kaldırma (İsteğe Bağlı)
Bazen swap alanını kaldırmak veya boyutunu değiştirmek isteyebilirsiniz. Örneğin, daha fazla RAM eklediniz ve swap’a artık ihtiyaç duymuyorsunuz ya da daha büyük bir swap dosyası oluşturmak istiyorsunuz. İşte swap alanını kaldırma adımları:
Adım 1: Swap Dosyasını Devre Dışı Bırakma
İlk olarak, sistemdeki swap dosyasını devre dışı bırakmalısınız.
sudo swapoff /swapfile
Doğrulamak için free -h veya swapon --show komutlarını kullanabilirsiniz. Swap alanının artık görünmemesi gerekir.
Adım 2: /etc/fstab Dosyasından Girişi Kaldırma
Sistemin yeniden başlatıldığında swap dosyasını tekrar etkinleştirmesini engellemek için /etc/fstab dosyasından ilgili satırı silmelisiniz.
sudo nano /etc/fstab
Daha önce eklediğiniz /swapfile none swap sw 0 0 satırını silin. Kaydedin ve çıkın.
Adım 3: Swap Dosyasını Silme
Artık swap dosyasına ihtiyacınız kalmadığına göre, disk alanını geri kazanmak için dosyayı silebilirsiniz.
sudo rm /swapfile
Bu adımları tamamladıktan sonra swap alanı sisteminizden tamamen kaldırılmış olacaktır.
Sonuç ve Sıkça Sorulan Sorular (SSS)
Bu rehberde, Rocky Linux 9 sisteminizde bir swap dosyası oluşturmayı, etkinleştirmeyi, kalıcı hale getirmeyi ve gerektiğinde kaldırmayı detaylı bir şekilde öğrendiniz. Swap alanı, sistem kararlılığını ve performansını artırmak için önemli bir araçtır, ancak aşırı kullanımı disk G/Ç (giriş/çıkış) nedeniyle performansı düşürebilir. Doğru boyutlandırma ve yapılandırma, sisteminizin verimli çalışmasını sağlar.
Sıkça Sorulan Sorular (SSS)
1. Ne kadar swap alanı eklemeliyim?
Genel tavsiyeler şunlardır:
- RAM < 2 GB: RAM’in 2 katı kadar swap alanı.
- 2 GB <= RAM <= 8 GB: RAM ile aynı miktarda veya RAM’in 1.5 katı kadar swap alanı.
- RAM > 8 GB: RAM’in yarısı kadar veya en az 2-4 GB swap alanı.
- Hibernasyon (Hazırda Beklet) kullanılıyorsa: RAM miktarı kadar swap alanı.
Ancak, bu sadece bir başlangıç noktasıdır. Gerçek ihtiyaçlarınız, iş yükünüz ve uygulamalarınızın bellek tüketimine bağlı olacaktır. Sürekli swap kullanımı gözlemliyorsanız, daha fazla RAM eklemeyi düşünmelisiniz.
2. Swap alanı performansı etkiler mi?
Evet, etkiler. Swap alanı, sabit disk üzerinde bulunduğu için RAM’den çok daha yavaştır. Sistem sürekli olarak RAM ile swap alanı arasında veri taşımak zorunda kalırsa (bu duruma “swapping” denir), disk G/Ç’si artar ve genel sistem performansı önemli ölçüde düşer. Bu nedenle, swap alanı bir “can simidi” olarak görülmeli, birincil bellek çözümü olarak değil.
3. Birden fazla swap dosyası veya bölümü kullanabilir miyim?
Evet, Linux birden fazla swap alanı kullanmanıza izin verir. Her bir swap dosyasını veya bölümünü /etc/fstab dosyasına ayrı bir giriş olarak ekleyebilir ve önceliklerini (priority) ayarlayabilirsiniz. Ancak, genellikle tek bir swap dosyası çoğu kullanım durumu için yeterlidir ve yönetimi daha kolaydır.
4. Swap alanı diskte yer kaplar mı?
Evet, swap alanı, sabit diskinizde belirtilen boyutta bir dosya veya bölüm olarak yer kaplar. Bu alanı, diğer verileriniz için kullanamazsınız.
5. Swappiness nedir ve nasıl ayarlanır?
swappiness, Linux çekirdeğinin ne kadar agresif bir şekilde bellek sayfalarını swap alanına taşıyacağını kontrol eden bir parametredir. Değeri 0 ile 100 arasındadır:
swappiness = 0: Çekirdek, mümkün olduğunca uzun süre RAM’de kalmaya çalışır ve yalnızca kesinlikle gerekli olduğunda (bellek çok düşük seviyelere düştüğünde) swap kullanır. Sunucular için genellikle önerilen değerdir.swappiness = 100: Çekirdek, bellek sayfalarını swap alanına taşımak için çok agresiftir, bu da daha fazla disk G/Ç’sine neden olabilir.- Varsayılan değer (genellikle 60): Dengeyi sağlar, ancak bazı durumlarda bu değer çok yüksek olabilir.
Mevcut swappiness değerini kontrol etmek için:
cat /proc/sys/vm/swappiness
Geçici olarak değiştirmek için (yeniden başlatmada sıfırlanır):
sudo sysctl vm.swappiness=10
Kalıcı olarak değiştirmek için, /etc/sysctl.d/99-sysctl.conf (veya /etc/sysctl.conf) dosyasına bir satır ekleyin:
sudo nano /etc/sysctl.d/99-sysctl.conf
Dosyanın sonuna aşağıdaki satırı ekleyin:
vm.swappiness = 10
Kaydedin ve çıkın. Değişiklikleri uygulamak için:
sudo sysctl -p
swappiness değerini düşürmek, sistemin daha uzun süre RAM’i kullanmasını sağlayarak genel performansı artırabilir, ancak sistemde gerçekten bellek yetersizliği yaşandığında yavaş tepki vermesine neden olabilir. Kendi kullanım senaryonuza göre en uygun değeri bulmak için deneme yapmanız gerekebilir.