Sunucunuza takas alanı eklemek, yetersiz bellek hatalarını telafi etmek için mükemmel bir seçenektir. Linux, sistemdeki RAM miktarı dolduğunda kullanıcıların sistemlerine takas alanı eklemelerine olanak tanır. Özel bir alan bölümü oluşturduğunuzda, düşük disk alanı konusunda çok fazla endişelenmeden fiziksel belleğinizin sorunsuz çalışmasını sağlarsınız.
Takas Alanına Genel Bakış
Linux'taki takas alanı, bir makinenin sanal belleğinin fiziksel bellekte yer kalmadığında kullanılan bir parçasıdır. Özellikle ekstra bellek ihtiyacının ortaya çıktığı büyük bir program veya uygulamayla çalışırken, takas alanı geçici olarak etkin olmayan bellek sayfalarını tutmak için ideal bir seçimdir. Bir takas alanı oluşturmak, büyük programlar çalışırken kullanıcıların veri depolamasına olanak tanır ve böylece uygulama çökmelerini azaltır. Bu, sistemin daha fazla bellek kaynağına ihtiyaç duyması ve RAM'in dolu olması durumunda, bellekteki tüm etkin olmayan sayfaların takas alanına kaydırılması ve programların kesintisiz çalışabilmesi anlamına gelir.
Ne Kadar Takas Alanına İhtiyacım Var?
Takas alanı miktarı birkaç faktöre bağlıdır. Bunlar arasında kullanılabilir RAM, binen yük ve sistemin hazırda bekletme (diske askıya alma) özelliğini desteklemesinin gerekip gerekmediği yer alır. RAM'deki kullanılabilir alana göre önerilen takas alanını kontrol etmek için aşağıdaki tabloya bakın:
|
Sıra No. |
Kullanılabilir RAM Alanı |
Önerilen Takas Alanı |
|
1. |
1GB |
1GB |
|
2. |
2GB |
1GB |
|
3. |
3GB |
2GB |
|
4. |
4GB |
2GB |
|
5. |
5GB |
2GB |
|
6. |
6GB |
2GB |
|
7. |
8GB |
3GB |
Bu eğitimde, size Ubuntu 20.04 üzerinde takas alanı ekleme adımlarında rehberlik edeceğiz. Hadi başlayalım!
Gereksinimler
Bu eğitimi takip etmek için şunlara ihtiyacınız olacak:
- Ubuntu'nun kurulu olması.
- Root olmayan kullanıcı hesabı oluşturulmuş ve makinenizde sudo yetkilerine sahip olmalıdır.
Adım 1: Takas Alanı Bilgisi Kontrolü
Takas alanının boyutu sistemin RAM'ine bağlıdır. Bu nedenle, bir takas alanı oluşturmadan önce sisteminizde takas alanı kullanılabilirliğini kontrol etmek önemlidir. Sistemde yapılandırılmış herhangi bir takas alanı olup olmadığını kontrol etmek için aşağıdaki komutu yazın:
|
1 |
$ sudo swapon --show |
Bir çıktının görüntülenmesi, sisteminizde takas alanı oluşturmak için kullanılabilir alan olduğu anlamına gelir. Ancak, hiçbir çıktı alınmaması, takas alanı eklemek için yeterli kullanılabilir alan olmadığını gösteren bir işarettir.
Aktif bir takas alanı olmadığını doğrulamak için free aracını kullanın:
|
1 |
$ free -h |
Çıktıyı boş bir takas satırı olarak göreceksiniz:
Adım 2: Sabit Disk Bölümü Kullanılabilirlik Kontrolü
Sistem kullanılabilirliğini kontrol etmeye benzer şekilde, şimdi yeterli alanımız olduğundan emin olmak için mevcut disk kullanımımızı kontrol edelim. Sabit disk bölümü kullanılabilirliğini kontrol etmek için df komutunu kullanın:
|
1 |
df -h |
The device with / işaretine sahip ve Mounted on sütununda yer alan cihaz, 11% boş alana sahip diskimizdir. Çıktıyı göreceksiniz:
Sistem gereksinimlerini kontrol ettikten sonra, devam edelim ve dosya sistemimizde bir takas dosyası oluşturalım.
Step 3: Create a Swap File
Dosya sistemimizde bir takas dosyası oluşturmak için, kök dizinde swapfile adında bir dosyayı (/) dizini altında fallocate programını kullanarak tahsis edin. Dosya boyutu tahsis etmek ihtiyaçlarınıza bağlıdır. Eğitimi basit ve anlaşılması kolay tutmak için, 1G boyutunda bir dosya oluşturuyoruz ve RAM'in 1G kadarını buna ayırıyoruz. Bir takas dosyası oluşturmak için sudo komutunu kullanın:
|
1 |
sudo fallocate -l 1G /swapfile |
Ardından, ayrılan alanı doğrulamak için bu komutu yazın:
|
1 |
$ ls -lh /swapfile |
Sistemimizde bir takas alanı oluşturduğumuza göre, bir sonraki adımda bunu etkinleştirelim.
Adım 4: Takas Dosyasını Etkinleştirin
Doğru boyuta sahip olduğumuzda, bunu takas alanına dönüştürelim. Güvenlik nedenleriyle, dosyamızı root kullanıcıları için erişilebilir kılmak ve normal kullanıcıların erişmesini engellemek çok önemlidir. Sadece root yetkilerine sahip kullanıcıların dosyayı görüntüleyebilmesi ve içeriğini okuyabilmesi için kısıtlamalar ekleyeceğiz. Dosyayı yalnızca root kullanıcıları için erişilebilir kılmak amacıyla aşağıdaki root komutunu kullanın:
|
1 |
sudo chmod 600 /swapfile |
Ardından, değişiklikleri doğrulamak için ls komutunu kullanın:
|
1 |
$ ls -lh /swapfile |
Gördüğünüz gibi, yalnızca root kullanıcısı için okuma ve yazma izinleri etkindir:
Bundan sonra, dosyayı takas alanı olarak işaretleyin:
|
1 |
sudo mkswap /swapfile |
Çıktıyı göreceksiniz:
Bundan sonra, takas dosyasını etkinleştirin ve sistemimizin bunu kullanmaya başlamasına izin verin:
|
1 |
sudo swapon /swapfile |
Ardından, takas alanının kullanılabilirliğini doğrulayın:
|
1 |
$ sudo swapon --show |
Şu çıktıyı göreceksiniz:
Tıpkı Step 1'de yaptığımız gibi, free yardımcı programı alanını bir kez daha kontrol edeceğiz:
|
1 |
free -h |
Şu çıktıyı göreceksiniz:
Takas alanımız başarıyla kuruldu ve işletim sistemimiz bunu gerektiğinde kullanmaya başlayacak. Bir sonraki adımda, takas dosyasını kalıcı hale getireceğiz.
Adım 5: Takas Dosyasını Kalıcı Hale Getirme
Varsayılan olarak, sunucu her yeniden başlatıldığında takas ayarlarını otomatik olarak korumayacaktır. Varsayılan ayarları değiştirmek ve işi garantiye almak için takas dosyasını /etc/fstab dosyamıza ekleyeceğiz. /etc/fstab dosyasını yedeklemek için sudo komutunu kullanın:
|
1 |
sudo cp /etc/fstab /etc/fstab.bak |
Ardından, takas dosyası bilgilerini /etc/fstab dosyanızın sonuna şunu yazarak ekleyin:
|
1 |
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab |
Bundan sonra, takas alanımızı optimize edebilmek için bazı ayarları gözden geçirelim ve değişiklikler yapalım.
Adım 6: Takas Ayarlarının Değiştirilmesi
Bu adımda, ayarları yapılandıracağız ve bazı değişiklikler yapacağız. swappiness özelliğini ayarlayalım ve önbellek baskısını değiştirelim.
-
Swappiness Özelliğini Ayarlama
The swappiness parametresi ayarlanabilir bir çekirdek parametresidir. Çalışma zamanı belleğinin takas edilmesi arasındaki dengeyi değiştirir ve RAM'deki verilerin takas alanına aktarılmasını sağlar. Bu parametrik değer, 0 ile 100 arasında bir yüzde olarak ifade edilir.
The vm.swappiness değerinin sistemin takas davranışı üzerinde doğrudan bir etkisi vardır. vm.swappiness değeri ne kadar yüksek olursa, sistem o kadar çok takas yapar ve bunun tersi de geçerlidir. Değer sıfıra yakınsa, çekirdek verileri takas etmez ve bu da performansta düşüşe neden olabilir. Sisteminizin takas alanına çok fazla bağımlı olmamasını sağlamak, performansını artırmak ve güçlü bir yanıt verme hızı elde etmek için mükemmel bir yoldur.
Alternatif olarak, 100'e daha yakın bir vm.swappiness değeri, takas alanına daha fazla, fiziksel belleğe ise daha az veri yerleştirmeye çalışır. Düşük ila orta düzeydeki vm.swappiness değerinin aksine, RAM'e aktif olarak veri giriş çıkışı yapılırken yüksek sistem takası çok istenmeyen etkilere yol açar.
Şunu yazarak mevcut swappiness değerini kontrol edin:
|
1 |
cat /proc/sys/vm/swappiness |
Şu çıktıyı göreceksiniz:
Ayrıca sysctl komutunu kullanarak istediğiniz swappiness değerini de ayarlayabilirsiniz. Şunu yazarak swappiness değerini 15 olarak ayarlayalım:
|
1 |
sudo sysctl vm.swappiness = 15 |
Şu çıktıyı göreceksiniz:
Sistem yeniden başlatılana kadar ayarlar olduğu gibi kalacaktır. Yeniden başlatmada değerin otomatik olarak ayarlanması için satırı /etc/sysctl.conf dosyamıza ekleyin:
|
1 |
sudo nano /etc/sysctl.conf |
En alta aşağıdaki kodu ekleyebilirsiniz:
|
1 |
Vm.swappiness = 15 |
Ardından, dosyayı kaydedip kapatın.
-
Önbellek Baskısını Ayarlama
Ardından, diğer veriler yerine vfs_cache_pressure ile inode ve dentry bilgilerini gözetecek şekilde vfs_cache_pressure ayarını değiştireceğiz. Bu ayarları, çekirdeğin dizin önbelleğe alma için kullanılan belleği geri kazanma eğilimini de kontrol eder. Mevcut değeri kontrol etmek için proc dosya sistemine tekrar gidin:
|
1 |
cat /proc/sys/vm/vfs_cache_pressure |
Şu çıktıyı göreceksiniz:
Yapılandırma zaten yapıldığından, sistemimiz inode bilgilerini önbellekten kaldıracaktır. sysctl vm.vfs_cache_pressure değerini şu şekilde daha kararlı bir ayara getirelim:
|
1 |
sudo sysctl vm.vfs_cache_pressure = 60 |
Şu çıktıyı göreceksiniz:
Swappiness ayarımızda yaptığımıza benzer şekilde, buradaki yapılandırmayı da değiştirebiliriz:
|
1 |
sudo nano /etc/sysctl.conf |
En alta, oluşturduğunuz yeni değeri belirten bir satır ekleyin:
|
1 |
Vm.vfs_cache_pressure = 60 |
Son olarak, dosyayı kaydedip kapatın.
Sonuç
Takas alanını özel bir takas bölümü, bir takas dosyası veya her ikisinin birleşimi olarak ekleyebilirsiniz. Takas alanı oluşturabilir ve bellek yetersizliği uyarıları hakkında fazla endişelenmeden uygulamaları sorunsuz bir şekilde çalıştırmak için bunun avantajlarından yararlanabilirsiniz. Sınırlı bellek alanına sahip sistemlerde takas alanı oluşturmak ek bir avantaj olsa da, daha fazla RAM alanının bir alternatifi olarak görülmemelidir. Unutmayın, takas alanı bir sabit diskte bulunur, bu nedenle fiziksel belleğe kıyasla biraz daha yavaş bir erişim süresi yaşayabilirsiniz.
Ubuntu sunucularınızı kullanmaya başlamanıza yardımcı olacak daha fazla rehber blogumuzda yer almaktadır:
- Ubuntu 20.04'te NFS bağlama kurulumu
- Ubuntu 18.04'te Nginx kurulumu
- Ubuntu 18.04'te UFW ile güvenlik duvarı yapılandırma
Keyifli bilişimler!










Yorumlar
Henüz yorum yapılmamış. İlk siz olun.