it-swarm.asia

Takas belleği nedir?

Bazı veritabanı tablolarımı depolamak için RAM kullanıyorum ve diğerleri sabit diskte saklanır.

Bugün süreçlerimin takas belleği kullandığını öğrendim. Şimdi takas belleği nedir ve hangi işlemin takas belleği kullandığını nasıl tespit edebilirim ve bunları kullanmayı nasıl durdurabilirim?

30
developer

Fiziksel belleğiniz biterse, verileri diskteki belleğe depolayan sanal belleği kullanırsınız. Diskten okumak, bellekten okumaktan daha yavaş birkaç büyüklük sırasıdır, bu nedenle her şey yavaşlar. (Gerçek bellek ile sanal bellek arasında veri alışverişi "değişiyor". Diskteki boşluk "değiş tokuş alanı" dır.)

Uygulamanız "takas kullanıyorsa", daha az bellek kullanmanız veya daha fazla RAM satın almanız gerekir.

(Takas kullanılmaz çünkü kullanılmayan uygulamalar kullanılana kadar diskte saklanabilir. Sonra "sayfalandırılabilir" ve tekrar normal şekilde çalışabilirler. Ancak bellekte olmasa da işletim sistemi bu belleği kullanabilir önbellek gibi başka bir şey için. Bu çok kullanışlı bir özellik, ancak programınızı çalıştırmak için yeterli fiziksel belleğiniz yoksa, kesinlikle daha fazla belleğe ihtiyacınız var. Neyse ki, bu günlerde bellek gerçekten çok ucuz.)

45
jrockway

Bir bilgisayarın belirli bir fiziksel belleği vardır. Ama çoğu zaman daha fazlasını istiyoruz. Bu yüzden diskte biraz bellek değiştiriyoruz.

Bu belleğe her ihtiyaç duyduğumuzda, belleğe geri alınması gerekir (başka bir parçayı değiştirerek). Gecikmeyi en aza indirmek için son derece akıllı algoritmalar vardır, ancak yine de bazen beklemek zorundayız.

Windows'da, görev yöneticisine bakarsanız, sütun sayfası hatalarını gösterebilirsiniz. Bu, bir uygulamanın diskte bulunan ve değiştirilmesi gereken bir bellek parçası istediği süreyi gösterir. Birçok sayfa hatası = yavaş uygulama.

Bu işlem çeşitli düzeylerde kullanılır. Hızlıdan yavaşlatmaya özet:

  • CPU seviyesinde kayıtlar vardır. Bunlar en hızlı bellektir ancak miktar sınırlıdır.
  • Ayrıca CPU'da küçük bir bellek önbelleği var. Burada hızlı erişim için çalışan programın küçük bir parçası saklanır. Daha fazla bilgi edinmek istiyorsanız, şube tahmin algoritmalarını arayın.
  • Bazen CPU ve ana bellek arasında seviye 2 önbellekler vardır.
  • Sonraki seviye ana bellektir (RAM).
  • Son seviye ve en yavaş disktir, bazen USB bellekleri ekstra bellek olarak kullanabilirsiniz.
7
Toon Krijthe
cat /proc/pid/smaps

Takas kullanmak istemiyorsanız, takas bölümü kullanmayın (/etc/fstab). Bu genel olarak iyi bir fikir değil ... çok güvenli değil ve hatta çok da kullanışlı değil, çünkü işletim sistemi sıcak sayfaları bellekte tutacak ve son zamanlarda kullanılmayanları diske değiştirecek.

Başka bir çözüm veritabanını kesmek olabilir, böylece sayfaları belleğe kilitler (bunun yapılabileceğini biliyorum, ama şimdi tam olarak nasıl olduğunu söyleyemedim), ama yine de, veritabanınızın kendi takas ve önbellekleme mekanizmaları.

Takasın ne olduğunu ve sanal belleğin nasıl çalıştığını bilmek için ... Bazı İşletim Sistemi derslerine göz atmanızı tavsiye ederim, belki MIT Açık Eğitim Yazılımı yardımcı olabilir.

3
fortran

Kısmen bir cevap buldum. Takas Belleği, İşletim Sisteminin RAM) üzerinde bulunan bilgileri başka bir uygulama için boşaltmak için kullanacağı Bilgisayarınızın Sabit Diskinde bir alandır. Sistem yeni bir işlem için belleğe ihtiyaç duyar ve hiçbiri yoktur, bu nedenle sistemimizde bol miktarda RAM) bir SWAP belleğe ihtiyaç duymayacağını görebiliriz.

[~ # ~] Güncelleme [~ # ~]

Yer değiştir (veya sanal bellek) yerini bulmak için Görev Yöneticisi'ne (CTRL + ALT + DEL) gidip GÖRÜNÜM -> SÜTUNLAR -> SANAL HAFIZA'dan açabilirsiniz. Şimdi sadece bellek kullanımı ve sanal bellek arasındaki farkı hesaplayın. Ayrıca Vista'yı çalıştırıyorsanız nasıl göreceğinizle ilgili bir talimat: http://www.ehow.com/how_5067693_increase-swap-space.html

1
faya