Soru 8 GB'lık bir RAM makinesinde bir sayfa dosyası kaldırmanın yararı veya zararı var mı?


Windows 7'yi 8 GB RAM ile çift çekirdekli, x64 AMD'de çalıştırıyorum.

Bir sayfa dosyasına bile ihtiyacım var mı?

Onu kaldırmak ya da performansa zarar verecek mi?

Bu bir sunucu veya masaüstü ise bir fark yaratır mı?

Windows 7 ve Windows 2008 bir sayfa dosyası ile fark yaratır mı?


214
2018-06-10 19:50


Menşei




Cevaplar:


TL; DR sürümü: Windows'un bellek / sayfa dosyası ayarlarınızı yapmasına izin verin. MS'deki insanlar bir çok Bu sorunları çoğu zaman sysadmins'den daha fazla düşünmek.

Birçok kişi, Windows'un verileri istek üzerine sayfa dosyasına aktardığını varsayar. EG: bir şey çok fazla bellek istiyor ve ihtiyacı karşılamak için yeterli RAM yok, bu yüzden Windows son dakikada RAM'den diske veri yazmaya başladı, böylece yeni talepler için RAM'i serbest bıraktı.

Bu yanlış. Kaputun altında daha fazlası var. Genel olarak, Windows bir Takviye deposuYani, bellekte bulunan her şeyi bir yerlerde de diskte görmek istiyor. Şimdi, bir şey ortaya çıktığında ve çok fazla bellek gerektirdiğinde, Windows RAM'i çok hızlı bir şekilde temizleyebilir, çünkü bu veriler zaten diskte, çağrılırsa RAM belleğe alınmaya hazırdır. Yani, sayfa dosyasındakilerin çoğunun olduğu söylenebilir Ayrıca RAM'de; veri preemptively hızlandırmak için sayfa dosyasına yerleştirildi yeni bellek ayırma talepleri.

İlgili belirli mekanizmaları tanımlamak çok sayıda sayfa alacaktır (bkz. Bölüm 7). Windows Internalsve unutmayın ki yeni baskı yakında mevcut olacak), ama not etmek için birkaç güzel şey var. Birincisi, RAM'de olanların büyük bir kısmı aslında disk üzerinde - program kodu örneğin bir yürütülebilir dosyadan veya bir DLL'den getirilir. Yani bu sayfa dosyasına yazılmaya gerek yok; Windows, bitlerin orijinal olarak alındığı yerleri kolayca takip edebilir. İkincisi, Windows, RAM'deki hangi verilerin en sık kullanıldığını izler ve bu nedenle, erişilemeyen en uzun veriyi RAM'den temizler.

Sayfa dosyasının tamamen kaldırılması, daha fazla disk atmasına neden olabilir. Bazı uygulamaların piyasaya sürüldüğü ve mevcut RAM'in% 80'ini talep ettiği basit bir senaryo düşünün. Bu, geçerli yürütülebilir kodu RAM'den - muhtemelen OS kodundan bile - zorlayacaktır. Artık bu diğer uygulamaların (ya da işletim sisteminin kendisinin (!!) bu verilere her erişiminde ihtiyaç duyduğu her seferinde, işletim sistemi, onları diskte depodan yedeklemekten geçirmeli ve çok fazla atmaya neden olmalıdır. Geçici veri için yedekleme deposu olarak hizmet vermek için pagefile olmadan, disk belleği olan tek şey yürütülebilir iç depoları olan başlatılabilir dosyalar ve DLL'lerdir.

Tabii ki birçok kaynak / kullanım senaryosu var. Sayfa dosyalarının kaldırılmasının olumsuz etkilerinin olmayacağı senaryolardan birine sahip olmanız imkansız değildir, ancak bunlar azınlıktır. Çoğu durumda, sayfa dosyalarının kaldırılması veya azaltılması, en yüksek kaynak kullanım senaryolarında düşük performansa yol açacaktır.

Bazı referanslar:

dmo kaydetti yakın zamanda Eric Lippert gönderisi Bu sanal bellek anlayışında yardımcı olur (ancak soruyla daha az ilişkilidir). Onu buraya koydum çünkü bazı insanların diğer cevaplara inmeyeceğinden şüpheliyim - ama eğer değerli bulursanız, borcunuz var dmo bir oy kullanma Bağlantı oraya gitmek için!


301
2018-06-10 21:15



Jeff ve Joel için: "ördekler" ile kafiyeli - quux
Solaris üzerinde daha fazla yer aldı. Takas dosyası, tmpfs gibi bir ram diskinde yansıtılır, böylece bellek her zaman neredeyse doludur - ancak görünüşe göre bu en uygun stratejidir. - Martin Beckett
Uzun zamandır, Windows'un dosya boyutumı yönetmesine izin vermek yerine, sabit bir miktara (örneğin, en az 2GB, maks. 2GB) ayarlamam gerektiğine inandığımdan dolayı, büyümenin ve küçülmenin parçalanma sorunlarına yol açabileceğine inanıyorum. Bu iyi bir düşünce mi, yoksa ilk hattınızı takip etmeli ve Windows herşeyi halledeyim mi? - John Fouhy
@Mehrdad: Çünkü RAM'inizin% 50'sini ücretsiz tutmak zorunda değilsiniz. Elbette bunu yapabilirdiniz, ancak aktif veriler için disk önbelleği olarak kullanabileceğiniz fiziksel RAM'in% 50'sini kaybedersiniz. Ücretsiz RAM, verimsizliğin bir işaretidir, FedEx kamyonları yolda değil de depoda. Demek oluyor ki sen değil Yapabildiğiniz kadar fazla yük taşımak çünkü yükleme ve boşaltma için çok fazla zaman harcıyorsunuz. - David Schwartz
@Mehrdad: Sorun, sayfa dosyası olmadan, çok fazla veri var. şart Hiç bir zaman erişilemese bile, RAM'de tutulmalıdır. Örneğin, sistem başlangıcında başlayan ancak günlerce kullanılmayacak bir hizmet sunan bir işlem tarafından tahsis edilen herhangi bir bellek düşünün. Sistem, verilere erişilemediğini kanıtlayamaz ve RAM'in saklamak için başka bir yeri yoktur. Bu nedenle, veri günlerce erişilemeyen RAM'de tutulurken disk önbelleği küçülür. - David Schwartz


Eric Lippert geçenlerde bir yazdı blog girişi Windows'un belleği nasıl yönetdiğini açıklar. Kısacası, Windows bellek modeli, RAM'in performans artırıcı bir önbellek olarak hareket ettiği bir disk deposu olarak düşünülebilir.


80
2018-06-24 19:47





Diğer cevaplardan da görüldüğü gibi, özürlü sayfa dosyası olan ve asla pişman olmadığım tek kişi benim. Harika :-)

Hem evde hem de işte 8 GB RAM ile Vista 64-bit var. İkisinde de sayfa dosyası devre dışı. İşyerinde, Visual Studio 2008'in birkaç örneğinin, Windows XP'yle Virtual PC'nin, 2 SQL Server örneğinin ve Internet Explorer 8'in birlikte çalıştığı birçok sekmenin olması benim için bir şey değildir. Nadiren hafızanın% 80'ine ulaşırım.

Ayrıca her gün (uyku ile hazırda bekletme) herhangi bir sorun olmadan hibrit uyku kullanıyorum.

Ben 2 GB RAM ile Windows XP vardı ve ben gerçekten fark gördüm o ile deneyime başladı. Klasik örnek, Denetim Masası'ndaki simgelerin kendisini birer birer göstermeyi bırakmasıydı, ama hepsi aynı anda. Ayrıca Firefox / Thunderbird başlangıç ​​zamanı önemli ölçüde arttı. Bir şey üzerine tıkladıktan hemen sonra her şey çalışmaya başladı. Ne yazık ki, uygulama kullanımım için 2 GB çok küçüktü (Visual Studio 2008, Virtual PC ve SQL Server), bu yüzden tekrar etkinleştirdim.

Ama şimdi 8 GB ile geri dönmek ve sayfa dosyasını etkinleştirmek istemiyorum.

Aşırı durumlar hakkında söylenenler için bunu Windows XP zamanlarımdan alıyorum.
Excel'de bir SQL sorgusundan büyük Pivot Tablosunu yüklemeye çalıştığınızda, Excel 2000 bellek kullanımını oldukça hızlı artırır.
Sayfa dosyanız devre dışı bırakıldığında - biraz bekleyin ve sonra Excel patlayacak ve sistem tüm belleği temizleyecektir.
Sayfa dosyası etkinleştirildikten sonra - biraz zaman beklersiniz ve bir şeylerin yanlış olduğunu fark ettiğinizde, sisteminizde neredeyse hiçbir şey yapamazsınız. HDD'niz cehennem gibi çalışıyor ve bir şekilde Görev Yöneticisini (birkaç dakika bekledikten sonra) çalıştırıp öldürmeyi başarmış olsanız bile excel.exe Sistem her şeyi sayfa dosyasından geri yükleyene kadar dakika beklemeniz gerekir.
Daha sonra gördüğüm gibi, Excel 2003, aynı pivot tabloyu sayfa dosyası devre dışıyken problemsiz olarak ele alır - bu yüzden "çok büyük veri kümesi sorunu" değildi.

Yani bence, engelli bir sayfa dosyası sizi bazen kötü yazılı uygulamalardan koruyor.

Kısaca: Bellek kullanımınızın farkındaysanız - güvenli bir şekilde devre dışı bırakabilirsiniz.

Düzenle: Sadece Windows Vista SP2'yi herhangi bir sorun olmadan kurduğumu eklemek istiyorum.


47
2018-06-28 21:10



Sayfa dosyamı devre dışı bıraktım ve belleğimi gerçekten kullandığım anda pişman oldum. Öyleyse, ihtiyacın olandan daha fazla hafızan var. - Sam
+1, "bende" :-). Aynı hikaye - 8GB bellek, Vista x64, ReSharper + SQL Server Express + IIS + 1-2 sanal makineleri (her biri 1500MB bellek ile) + yardımcı programları ile Visual Studio çalıştıran - hiç sorun yaşamadım. - Milan Gardian
Herkesin "Microsoft bu meseleyi düşünmek için çok zaman harcadı, bu yüzden bununla uğraşmayın" diyerek seviyorum, ama gerçek dünya deneyimlerini tamamen görmezden geliyorum. Disk belleği dosyasını XP'den beri devre dışı bıraktım ve asla pişman olmadım. Bilgisayarın harika bir enjeksiyon alması gibi. - AngryHacker
İSCSI önyükleme sunucusundaki çağrıları devre dışı bırakmak için oldukça standart bir uygulamadır, SAN üzerinden sayfalama oldukça yavaş fark edilir. Sadece bellek kullanımınızı izlemek zorundasınız ve max. - Chris S
-1 Bu cevapta hiç referans görmüyorum. Aslında dosya sistemim devre dışı bırakıldı ve disk belleği havuzu belleğim dolu olduğundan sistem çöküyordu. Yine de, fiziksel bellek kullanımım sadece 2 GB idi ... - Tom Wijsman


Kendi dosya sisteminizin sayfa dosya ayarlarını yapmadan önce nasıl bellek kullandığını anlamak için biraz ölçüm yapmak isteyebilirsiniz. Veya (eğer hala ayarlama yapmak istiyorsanız), daha önce ve sonra söz konusu ayarlamalar.

Perfmon bunun için bir araçtır; değil Görev Yöneticisi. Bir anahtar sayacı Bellek - Sayfa Girişi / sn. Bu özellikle grafik olacak zor sayfa hataları, bir işlemin devam etmeden önce diskten okunması gerekenler. Yumuşak sayfa hataları (varsayılan olarak grafiklenen öğelerin çoğunluğu) Sayfa Hataları / sn sayaç; Bu sayacı göz ardı etmenizi tavsiye ederim!) Gerçekten bir sorun değil; Sadece normal olarak RAM'den okunan öğeleri gösterirler.

Perfmon grafiği http://g.imagehost.org/0383/perfmon-paging.png

Yukarıda, kaygıları olmayan, bellek açısından bir sistem örneği. Çok nadiren, sert fayların bir artışı söz konusudur - sabit diskler her zaman RAM'den daha büyük olduğu için bunlar önlenemez. Fakat grafik büyük ölçüde sıfırdır. Böylece işletim sistemi çok nadiren destek deposundan çağrı yapıyor.

Eğer görüyorsanız Bellek - Sayfa Girişi / sn Bundan çok daha esnek olan grafik, doğru yanıt bellek kullanımını azaltmak (daha az program çalıştırmak) ya da RAM eklemektir. Sayfa dosyası ayarlarınızı değiştirmek, sistemden gerçekte olduğundan daha fazla belleğin talep edilmesini değiştirmeyecektir.

İzlemek için kullanışlı bir ek sayaçtır PhysicalDisk - Ort. Kuyruk Uzunluğu (tüm örnekler). Bu, değişikliklerin disk kullanımını ne kadar etkilediğini gösterecektir. İyi huylu bir sistem, bu sayacın ortalama 4 veya daha azında olduğunu gösterir mil başına.


34
2018-06-10 21:52



nefesi kesilmek Takas dosyasını nasıl denetleyeceğimizi göstermek için birileri bile yollarına düşüyor. müthiş. - cgp
Resme ölü bağlantı. Sabit ihtiyaç var. - kinokijuf
Evet, "ImageHost.org kapalı" - Peter Mortensen


8 GB Vista x64 kutumu bir sayfa dosyası olmadan yıllar boyunca sorunsuz bir şekilde çalıştırıyorum.

Gerçekten hafızamı kullandığımda sorunlar ortaya çıktı!

Üç hafta önce, Photoshop'ta gerçekten büyük resim dosyalarını (~ 2 GB) düzenlemeye başladım. Bir düzenleme oturumu tüm belleğimi yedi. Sorun: Dosyayı kaydetmek için Photoshop'un daha fazla belleğe ihtiyacı olduğundan çalışmamı kurtaramadım!

Ve o, tüm anıları yiyen Photoshop'un kendisi olduğu için, programları kapatarak hafızayı bile açamadım (iyi yaptım, ama yardım için çok azdı).

Tek yapabildiğim çalışmamı boşa çıkardı, sayfa dosyamı etkinleştirdi ve tüm çalışmalarımı yineledim - bu yüzden çok fazla iş kaybettim ve sayfa dosyanızı devre dışı bırakmanızı tavsiye edemedim.

Evet, çoğu zaman işe yarayacak. Ama kırdığı an acı verici olabilir.


34
2017-07-22 09:43



Daha sık tasarruf etmelisiniz: D zararları en aza indirmek için - alexandrul
söylemesi kolay, kaydetme birkaç dakika sürer, bu bir pide. - Sam
Daha karmaşık yazılımlar kullanırsanız hepimiz mutlu oluruz, ancak bazen bir "çökme", "Oh bok, bir süre kaydetmedim" ile hizaya gelir. - Damon


Buradaki cevaplar konuyu oldukça iyi bir şekilde ele alırken, yine de şu okumayı önereceğim:

http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx

Neredeyse sonunda PF boyutu hakkında konuşuyor:

Bazıları disk belleği dosyasının daha iyi performansla sonuçlanacağını düşünür, ancak genel olarak bir disk belleği dosyasına sahip olmak, Windows'un değiştirilenler listesinde (etkin olarak erişilemeyen, ancak diske kaydedilmemiş olan sayfaları temsil eden) sayfalar yazabileceği anlamına gelir. disk belleği dosyası, böylece bu belleği daha kullanışlı amaçlar için kullanılabilir hale getirir (işlemler veya dosya önbelleği). Bu nedenle, disk belleği dosyası olmadan daha iyi performans gösteren bazı iş yükleri olabileceği gibi, genel olarak sistemde kullanılabilen daha fazla kullanılabilir bellek anlamına gelecektir (Windows, büyük boyutlu disk belleği dosyası olmadan çekirdek çökme dökümlerini yazamayacaktır) onları tutmak için yeterli).

Mark'ın yazılarını gerçekten çok seviyorum.


19
2018-06-29 00:42



Mark Russinovich bağlantısı için +1, basit. Win7, takas dosyasını devre dışı bırakırsanız, "sistem sorunlarının izini süremeyeceğinizi" belirten bir bildirim bile çıkarır. - cgp


Düşünebildiğim en iyi cevap, normal bir yük altında 8 GB'yi kullanamayacağınız, ancak sorun yaşayacağınız beklenmedik yüklerdir.

Bir sayfa dosyası ile, sistem en azından sayfayı vurmaya başladığında yavaşça çalışır. Ama eğer sayfa dosyasını kaldırırsanız sadece ölecektir (bildiğimden).

Ayrıca, 8 GB şimdi bir sürü gibi gözüküyor, ancak birkaç yıl boyunca bir çok yazılım için minimum bellek miktarı olarak düşünülebilir.

Her iki şekilde de - En azından küçük bir sayfa dosyası tutmanızı tavsiye ederim; ama diğerleri ben üstadımsa lütfen beni düzeltin.


13
2018-06-10 19:56



Biraz daha ileri giderim ve değil sayfa dosyasını kapatın. Bu gerçekten iyileştirici şeyler değil. Pencereleri yapalım ... daha iyi biliyorlar. - Michael Haren
Sadece 6GB mkv dosyası yüklemek için Media Player Classic'i kullanmaya çalıştı. Beni RAM'imden ve sayfa dosyamdan kurtardı. VLC'ye oldukça hızlı bir şekilde geri döndü. "Ne yapacağınızı asla bilemezsiniz" için +1. Sonunda MPC çöktü ve RAM'im geri yüklendi, ancak bir bellek sızıntısı olan bir üçüncü parti yazılımında bir DLL alırsanız ne olur? Size yardımcı olacak disk destekli bir belleğiniz varsa çok daha fazla kilometre kazanacaksınız. - mpbloch
Artı nokta, aslında bunu kullanarak sürekli korku yaşamak zorunda iseniz 8GB sahip olmanın iyisi nedir ?! - David Schwartz
Windows'un nasıl kullanılacağı net olmadığından "en azından küçük bir sayfa dosyasını sakla" bana biraz garip geliyor. Mesela, daha fazla alan sunan daha büyük bir sayfa dosyasından bile daha fazla atlatabilir - tahmin ediyorum, ama bu konuda güvenilir bir kaynak olmadığı sürece, küçük sayfa dosyası tavsiyesinin muhtemelen zararlı olduğunu ve bunun yerine standart bir uygulama önermesini tavsiye ederim. - mafu