Ubuntu/Linux İçin Takas Alanı

Takas alanı, sabit disk üzerinde işletim sistemi tarafından ayrılmış bir bölümdür. İşlenecek veriler RAM’e sığmadığı zaman bu bölüm RAM gibi kullanılır ve böylece işlemlerin devam etmesi sağlanır. Sabit disklerin veri okuma/yazma hızları RAM’lerden çok daha düşük olduğu için takas alanının kullanılması işlemleri yavaşlatır[link]. Fakat çalışan servisler bazen çok ciddi sistem kaynağı harcar hale gelir ve takas(swap)  alanına ihtiyaç duyar.

Linux işletim sisteminde takas alanı oluşturmak aslında oldukça basittir. Ubuntu veya Linux un başka bir sürümünde  harddisk üzerinde bir partition oluşturarak bu işi gerçekleştireceğiniz gibi basit bir dosya oluşturarakta amacımıza hızlı bir şekilde ulaşmak mümkün. Takas alanlarının en az cihazın ram ı kadar olmasına dikkat etmenizi önerebilirim. Çünkü Ubuntu gibi bir işletim sistemi kullanıyorsanız ve bilgisayarınızı uyku moduna (hibernate) alıp tamamen enerjisini kesmek istiyorsanız ramlarınız tümünün harddiske çıkarılması gerekir. Bu aşamada takas alanı devreye girer ve ramlarınızı bu dosya/partition içerisine yazar. Bu nedenle takas alanının en az ram kadar hatta ramdan daha fazla olması sistemin doğru çalışması için önemlidir.

Gelelim takas alanını nasıl oluşturacağımıza. Ben bu çalışmada hızlı olması açısından dosya oluşturmayı tercih edeceğim. Siz isterseniz gparted gibi bir yazılım kullanarak harddiskiniz üzerinde bir alan ayırabilirsiniz. Bu aşamada daha önce paylaşmış olduğumuz dd komutunu kullanacağız.

Çalışmalarımı root dizininde (/) gerçekleştireceğim. Ben yetki seviyemi konsol üzerinde root seviyesine çıkarmadım. sudo komutunu kullanmaya devam edeceğim. Siz isterseniz root seviyesine çıkarak sudo komutlarını es geçebilirsiniz.

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024

Yukarıdaki komut ile root dizini içerisine swapfile isminde 1GB bir dosya oluşturdum. count sayısını arttıracak daha büyük boyutlu dosyalar oluşturabilirsiniz.

Dosya izinlerimizi ayarlayalım

sudo chmod 0600 /swapfile
sudo chown root:root /swapfile

Dosyamızı oluşturduktan sonra  sıra geldi bu dosyayı swap dosyası olarak tanımlamaya. İlk önce dosyayı swap olarak işaretleyelim.

sudo mkswap /swapfile

Komutu çalıştırdıktan sonra şöyle bir çıktı göreceksiniz.

Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=6a5bde7f-7040-4970-8fff-73ee1c8c9a23

Daha sonra swap dosyamızı kullanılabilir hale getirelim

sudo swapon /swapfile

Bu komutu çalıştırdıktan sonra swap dosyamız kullanılabilir hale gelecektir.

Aktif swap alanlarını şu komutla listeleyebilirsiniz.

sudo swapon -s

Swap dosyasını kapatmak için swapoff komutunu kullanmanız mümkün. Elbette bindiğiniz dalı kesmemek için swap dosyasını silmeden önce sistemden ayırmayı unutmayın.

Yapılan bu değişiklikler kalıcı değildir. İşletim sistemi yeniden başladığı anda swap otomatik olarak off duruma geçecektir. Kalıcı yapmak için ise şu dosyayı editleyip

sudo nano /etc/fstab

dosyasının sonuna swap dosyanızı şu şekilde tanımlamanız gerekir.

/swapfile       none    swap    sw      0       0

İşlemler bu kadar. Fakat bir ince ayardan daha bahsetmem gerekiyor. Swap dosyasının sürekli olarak kullanılması sistem üzerinde yavaşlamalara neden olur. Çünkü sisteminiz harddiski ram olarak kullanmaya çalışır. Yavaş yazma/okuma işlemi sistemde gecikmelere neden olur. Bu nedenle swap alanları sadece acil durumlarda devreye girmelidir.

Bunun için önerilen ayarlar şöyledir [daha geniş bilgi]:

echo 10 | sudo tee /proc/sys/vm/swappiness
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf

Buradaki sayısal değer swapın ne kadar sıklık ile kullanılacağı ile ilgilidir. Eğer 0 olarak işaretlerseniz sistem swap alanını sadece out-of-memory durumunda yani ram ın hiç yetmediği durumda(acil durum diyoruz buna) kullanacaktır. 100 yaparsanız sistem swap alanınızı ram olarak kullanmaya başlayacaktır. Default değer 60 olarak tanımlanmıştır. Harddiskinizin performansına göre bir değer atayabilirsiniz.

İşlem tamam 🙂

Özet
İsmi
Ubuntu/Linux İçin Takas Alanı
Share