Takip et

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.

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.
  • root kullanıcısı erişimi veya sudo yetkilerine 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 /swapfile adı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ında dump komutuyla yedeklenip yedeklenmeyeceğini belirler. Genellikle swap alanları için 0 olarak ayarlanır.
  • 0: Pass seçeneği. Dosya sistemi kontrolü sırasında fsck komutuyla 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.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık