Sanal bellek, modern işletim sistemlerini destekleyen şeylerden biridir, ancak genellikle, bir sorununuz olmadığı sürece gerçekten düşünmezsiniz. Linux dağıtımları, kurulum sırasında sanal bellek alanınızı (takas bölümleri) ayarlamanızı ister, ancak yeni başlayanların çoğu bunun ne kadar yararlı olduğunun farkında değildir.

İşte Linux'ta sanal bellek hakkında bilmeniz gereken her şey.

Sanal Bellek Nedir?

Sanal bellek, makinenizdeki fiziksel bellekten soyutlanmış belleğinizi temsil etmenin bir yoludur. İster geleneksel bir sabit sürücüde isterse bir SSD'de olsun, hem RAM'inizi hem de depolama alanınızı kullanır.

Linux'ta bu, çekirdek ve donanım seviyelerinde yapılır. CPU, fiziksel bellek adreslerini sanal adreslere çeviren Bellek Yönetim Birimi (MMU) adı verilen bir donanıma sahiptir. Bu adresler, makinede fiziksel olarak nerede bulunduklarından bağımsızdır. Bu adres boşlukları "sayfalar" olarak bilinir ve bunlar RAM'de veya sabit sürücünüzde veya SSD'de olabilir. İşletim sistemi bu adresleri "adres alanı" olarak bilinen büyük bir bellek havuzu olarak görür.

instagram viewer

Sanal bellek, teoride kullanılan belleğin tamamının her zaman kullanılmadığı gerçeğinden yararlanır. Bellekteki programlar sayfalara bölünür ve çekirdeğin gereksiz gördüğü parçalar "takas edilir" veya sabit sürücüye taşınır. Gerektiğinde "takas edilebilir" veya RAM'e geri getirilebilirler.

Bir sürücüdeki sanal bellek için kullanılan alan, "destek deposu" veya "takas alanı" olarak bilinir. Windows dünyasında, bu genellikle "takas dosyası" olarak bilinen bir dosya olarak uygulanır. Bunu Linux'ta da yapmak mümkündür, ancak çok daha yaygındır. ile özel bir disk bölümü kullanın.

Linux'taki takas dosyaları genellikle minimal veya gömülü sistemler için ayrılmıştır ve gömülü işletim sistemlerinin küçük olması gerektiğinden, ikincisinin tamamen sanal bellek olmadan çalışması yaygındır.

Sanal belleğin sonucu, fiziksel RAM'den daha fazla bellek kullanarak büyük programları çalıştırmanın mümkün olmasıdır. makineniz, tıpkı bir kredi kartının bankanızda sahip olduğunuzdan daha fazla parayla büyük alışverişler yapmanıza izin vermesine benzer şekilde hesap. Bir kredi kartı gibi, sanal bellek de ihtiyacınız olduğunda kullanışlıdır ancak kullanımını fazla uzatmak istemezsiniz.

Sanal bellek, geliştiricilerin bir bilgisayarın belleğinin nasıl düzenlendiğini bilmeden uygulamalar oluşturmasına da olanak tanır.

Sanal belleğin tarihsel olarak ana dezavantajı, sabit sürücülerin RAM'den daha yavaş olmasıdır. Bir makinenin yeterli RAM'i yoksa, sistem "thrashing" olarak bilinen bir işlem olan sayfaları sürekli olarak içeri ve dışarı değiştirmeye devam edebilir. Bu mekanik sabit sürücülerin yerini alan daha fazla RAM ve daha hızlı SSD'lere sahip modern PC'lerde daha az sorun, ancak yine de bilinmesi gereken bir şey var nın-nin.

Linux Takas Bölümleri

Daha önce bahsedildiği gibi, Linux'ta sanal bellek kurmanın genel yöntemi, ayrılmış bir disk bölümü kullanmaktır. Kurulum yardımcı programı donanımınızı inceleyecek ve takas bölümü içeren bir bölümleme şeması önerecektir.

Kurulumdan sonra takas bölümleri de ekleyebilirsiniz. Mevcut bir sürücüye yeni bir bölüm eklemek isterseniz, tahribatsız bir bölümleme aracı kullanın GParted gibi. Bölümünüz için dosya sistemi olarak "Linux takas"ı seçtiğinizden emin olun.

Sürücünüzü yeniden bölümlendirmeden önce önemli verileri yedekleyin.

Bölümünüzü oluşturduktan sonra, bölümünüzü biçimlendirmek için mkswap komutunu kullanın.

sudo mkswap /dev/sdX

Şimdi düzenlemeniz gerekecek /etc/fstab takas bölümünüzü eklemek için kök olarak. Dosyaya eklenen bu satır, önyükleme sırasında takılacak bir takas bölümü oluşturacaktır:

/dev/sdX hiçbiri takas varsayılanları 0 0

Şimdi kullan takas yeni takas alanınızı etkinleştirme komutu, burada sdX takas bölümünüzün adıdır:

sudo takas /dev/sdX

Linux'ta Takas Dosyalarını Kullanma

kolay Linux'ta bir takas dosyası kurun komut satırını kullanarak. Sürücünüzü yeniden bölümlere ayırmak veya düzenlemekle uğraşmak istemiyorsanız bunu yapmak isteyebilirsiniz. /etc/fstab. Bir yöntem kullanmaktır hata yapmak:

Örneğin, 2 GB'lık bir takas dosyası oluşturmak için:

sudo fallocate -l 2G /path/to/swapfile

Alternatif olarak, takas dosyasını oluşturmak için dd komutunu kullanabilirsiniz.

sudo dd eğer=/dev/sıfır nın-nin=/path//takas dosyası bs=1024 say=2048

dd komutunu doğru kullandığınızdan emin olun, çünkü infile ve outfile'i yanlış almak veri kaybına neden olabilir. fallocate bu nedenle tercih edilen yöntemdir.

bu /dev/zero cihaz, "0" veren özel bir cihazdır. Bu dd komutunun yaptığı şey, takas alanı olarak kullanılmaya uygun 1024 kilobaytlık blokları kullanarak iki gigabaytlık boş bir blok dosyası oluşturmaktır.

Daha sonra mkswap ve takas takas bölümüyle yaptığınız gibi bir takas dosyasıyla komutlar:

sudo mkswap /path/to/swapfile
sudo swapon /path/to/swapfile

Takas alanınız için ne zaman bir takas dosyası veya özel bir bölüm kullanmanız gerektiğini merak edebilirsiniz. Seçim kolaydır: çoğu durumda bir bölüm kullanmalısınız. Bu, bir Linux masaüstü veya sunucu için en iyi seçimdir. Yükleyici tarafından önerilen bölüm şeması, genellikle tek kullanıcılı bir Linux masaüstünde yeterlidir.

Linux'u sanal bir makinede, küçük bir gömülü sistemde çalıştırıyorsanız veya sadece mevcut Linux sisteminizi yeniden bölümlendirmek istemiyorsanız bir takas dosyası kullanmak isteyebilirsiniz.

Ne Kadar Takas Alanı?

Uzun yıllar boyunca, ne kadar takas alanına ihtiyaç duyulduğuna ilişkin standart tavsiye, fiziksel RAM'in iki katıdır. En ucuz bilgisayarların bile sahip olduğu büyük sürücüler ve bellek miktarları ile bu kural sorgulanabilir.

Birçok sistemde, top veya htop'u işaretlerseniz, sisteminizi bu şekilde kurarsanız takas alanınızın hiç kullanılmadığını bile fark edebilirsiniz.

Yine de, bellekten daha fazla talepte bulunursanız, fiziksel belleğin iki katı iyi bir başlangıç ​​noktası ve bir sigorta poliçesidir. Gerektiğinde sisteminizde değişiklik yapabilirsiniz. Sisteminiz tüm RAM'inizi kullanıyorsa, sanal bellek kullanılırken bilgisayar performans sorunlarıyla karşılaşabilir.

Bilgisayar, thrashing olarak bilinen bir işlem olarak değiş tokuş etmeye devam edebilir ve yanıt vermiyor gibi görünebilir. Hala mekanik bir sabit sürücünüz varsa, sürekli olarak eriştiğini duyabilirsiniz.

En ucuz PC'lerde bile RAM miktarı fazlasıyla yeterli olduğundan ve SSD'lerin hızı eski sabit sürücülerden çok daha hızlı olduğundan, bu günümüzde çok daha az sorun teşkil ediyor. Yine de bilmeniz gereken bir şey.

Bunu düzeltmenin en kolay yolu, makinenize daha fazla RAM eklemektir. Bu mümkün değilse, Linux çekirdeğinin "değişebilirliğini" ayarlamayı deneyebilirsiniz.

Takas sayısı, çekirdeğin sanal belleğe ne kadar daldığını belirler. 0 ile 100 arasında değişmektedir. 0'a ayarlamak, Linux'un hiç değişmeyeceği, 100'de ise her fırsatta değişeceği anlamına gelir. Çoğu sistemde varsayılan değer 60'tır.

Değişkenliği geçici olarak değiştirmek için sysctl komutunu kullanın:

sudo sysctl vm.swappiness=20

Bu komuttaki "20", siz yeniden başlatana kadar takas numarası olacaktır. Kalıcı olarak değiştirmek için, /etc/sysctl.conf dosyasını root olarak dosyalayın ve "vm.swappiness=[takas numarası]" satırını yerleştirin, burada "[takas numarası]" istediğiniz takas numarasıdır. Bu, daha fazla RAM yükleyene kadar geçici bir durak olacaktır.

Sanal Bellek, Linux Sisteminizin Sorunsuz Çalışmasını Sağlar

Sanal bellek, bilgisayarınızın sorunsuz çalışmasını sağlayan Linux dahil modern işletim sistemlerinin bir bileşenidir. Bir takas dosyası kullanabilirsiniz, ancak genel yöntem özel bir bölümdür. Bunun hakkında çok fazla düşünmenize gerek yok, ancak Linux takas bölümleri ve takas dosyalarının kurulumu ve sorun gidermesi kolaydır.

Bu tavsiyelerin çoğu, sanal bellek kurma yöntemleri farklı olsa bile, Windows dahil diğer sistemler için de geçerlidir.