Linux'ta Swap (Takas) Alanı Sorunsalı

Hopeツ︎

Profesör
Onursal Üye
image004.jpg


Linux camiasında sıkça tartışılan bir konuya açıklık getirelim istiyorum. Tartışma konusu ya da konuları oldukça açık ve sorulan sorular'da öyle. Sırasıyla bu kafayı karıştıran cevapsız soruları cevaplandıralım istiyorum... İlk öncelikle "Swap (takas) alanı ne demek onu öğrenelim.

Swap (Takas) Alanı da Ne Oluyor?

Öncelikle Swap, aslında diskiniz üzerinde oluşturulmuş bir bölümden ibarettir. Takas alanına genel olarak Linux distrolarında rastlarız. Makinede her ne yapıyorsanız bu belleğinizi (Ram'i) esas alır. Şansınızı zorladınız diyelim (cidden zorladınız) tamam işte burada Swap alanı devreye giriyor... Belleğe yetersiz gelen uygulamalarınızı diskte ayırdığınız takas alanında devam ettirebiliyorsunuz böylece.

Swap Alanı Bana Bir Fayda Sağlayacak Mı?

Makinede çalıştırdığınız uygulama, işlem sayıları ile dans ediyorsanız evet size yarar sağlayacaktır.

Bir Swap Alanı Belirlemezsem Ne Olur Şart Mı?

Şart değil fakat düşük Ram (Belleğe) sahipseniz örneğin; 2gb ya da altında... Bir ihtimal şart duruma gelebilir.

Swap Alanı Ne Kadar Olmalı?

Can alıcı soru budur bana göre, en fazla karmaşanın yaşandığı kısım. Bazı öneriler var, Ram boyutu ne kadar ise Swap'ta onun birkaç seviye üstünde belirlenmeli diye. Şahsen buna katılmıyorum ne gereği var? diye sorarım. Zira sormalıyız... Diskte gereksiz yere takas alanı için büyük bir miktarı harcamak neden? sizler dağıtımınızın kurulumunu yaparken eğer otomatik yaparsanız bunu yani "Diskleri manuel şekilde yapılandırmak yerine, Tüm diski kullan gibi şeyler" derseniz distro sizin sisteminizi değerlendirir yapılandırmada ona göre bir swap alanı belirler. Fakat kurulum yaparken disk yapılandırmanızı elle yaparsanız zaten ext4'e vb. ek bir swap alanı belirlemeniz gerekecektir.

Umarım bu soru işaretlerini kafanızdan atmanız adına bir nebze faydam dokunmuştur... Linux'la kalın. :)

SDN/Forum adına hazırlanmıştır, alıntı değildir.
 
Son düzenleme:

MrtAltg

murat.altug@shiftdelete.net
Yönetici
Super Moderator
Bazıo yerlerde ram in ebatı veya iki katı gibi önerilerde sunulur işin doğrusu kendi şahsımca 4 gb belliğim var 4 ayırıyorum düşünsenize 16 gb belleği olanın 16veya 32 gb takas ayırdığını
 

Hopeツ︎

Profesör
Onursal Üye
Bazıo yerlerde ram in ebatı veya iki katı gibi önerilerde sunulur işin doğrusu kendi şahsımca 4 gb belliğim var 4 ayırıyorum düşünsenize 16 gb belleği olanın 16veya 32 gb takas ayırdığını
4gb'nin ayrılması bir sorun teşkil etmez ama evet 16gb, 32gb bir takas alanının ayrılması gereksiz geliyor bana da aynı şekilde. 16'lık dilimin haznesi ne zaman doldurulacak ki swap alanına geçsin makine buna gerek duysun.
 

kilicbaligi

Dekan
Onursal Üye
Swap Alanı Ne Kadar Olmalı?

Can alıcı soru budur bana göre, en fazla karmaşanın yaşandığı kısım. Bazı öneriler var, Ram boyutu ne kadar ise Swap'ta onun birkaç seviye üstünde belirlenmeli diye
Takas alanı büyüklüğü sorunsalının kesin tek bir cevabı yok sanırım ve bu konuda benim gördüğüm Linux dağıtımlarının sadece önerileri var; kullanılan dağıtıma göre hareket edilebilir diye düşünüyorum.

Ubuntu topluluğu yardım sayfasında şu noktaya dikkat çekilmiş:

(Hibernation) Hazırda Bekletme/(diske askıya al) özelliği:
Bu özellik makineyi kapatmadan önce RAM'in içeriğini takas bölümüne (swap partition'a) yazar. Bu nedenle, takas bölümünüz en az RAM boyutunuz kadar büyük olmalıdır. Şu anda Ubuntu'da kullanılan hazırda bekletme uygulaması swsusp'un bir takas veya askıya alma bölümüne ihtiyacı vardır. Etkin bir dosya sisteminde bir takas dosyası kullanamaz.

Ne kadar takasa ihtiyacım var? sorusuna istinaden:

Örnek Senaryolar (son 3 sütun takas alanını gösterir)



şeklinde bir tablo sunulmuş. (Konuyu okurken tabloyu ben renklendirdim.)

Bkz.
 

Hopeツ︎

Profesör
Onursal Üye
Ubuntu kullanıcılarının swap hususunda daha dikkatli olmaları gerekecek öyle ki. Neyse ki Linux sonrasında bize etkinleştirilmesi ya da belirlenmesi için gereken alanı organize etmeyi sağlıyor. Ekleme için ayrıca teşekkürler... :)
 
Partition oluşturmak şu bağlamda iyidir.
Hard diskin ilk sektörleri ile son sektörleri arasındaki hız aynı değildir.
CD'ye benzer yuvarlak yapısından ötürü iç taraflara girdikçe her dönümde veri miktarı yani disk okuma ve yazma hızı azalır.
Eğer ki ilk partition olarak swap'ı oluşturursanız diskin en hızlı yerine koyacağınızdan ötürü daha verimli bir sistem elde edersiniz.

İkinci bir iyi yanı otomatik swap oluşturduğunuzda zamanla büyüyüp küçülebilir, bu da fragmantasyona neden olabilir, gerçi ext4 dosya sisteminde fragmantasyon problemleri journaling sayesinde zaman içerisinde yavaşça otomatik olarak halledilse de ilk yazdığım maddeye oranla çok daha düşük olsa da yine performans farkı oluşur.

Üçüncü bir iyi yanı ise ext4 veya diğer sistemler swap ile yüzde yüz verimli çalışmayabilir, kendine ait partition oluşturduğunuzda swap orayı raw bir disk yapısı olarak kontrol edecek ve yine ilk maddeye oranla daha düşük olsa da daha verimli kullanacaktır.
 
2,5gb ram var 2 gb hdd'de 8gb hi-level usb bellekte swap var donma yok...
Ekran Görüntüsü 2018-10-25 23-29-04.png

Kod:
sudo fdisk -l                           

[sudo] password for confickerbelasi: 

Disk /dev/sda: 149,1 GiB, 160041885696 bytes, 312581808 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos

Disk identifier: 0x000894bb



Device     Boot     Start       End   Sectors  Size Id Type

/dev/sda1  *         2048 100212735 100210688 47,8G 83 Linux

/dev/sda2       100212736 156686335  56473600   27G  7 HPFS/NTFS/exFAT

/dev/sda3       160888832 312580238 151691407 72,3G 83 Linux

/dev/sda4       156686336 160888831   4202496    2G 82 Linux swap / Solaris



Partition table entries are not in disk order.





Disk /dev/sdb: 7,5 GiB, 8058306560 bytes, 15738880 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos

Disk identifier: 0xbcc6298a



Device     Boot Start      End  Sectors  Size Id Type

/dev/sdb1        2048 15738879 15736832  7,5G 82 Linux swap / Solaris
 
Üst