Windows sayfa dosyasını devre dışı bırakmada sorun nedir?


15

İnsanlar her zaman bir sayfa dosyasına ihtiyacınız olduğunu ve performansı artıracağını söylüyor, ancak Windows 7'm sayfa dosyası olmadan çalışacak şekilde ayarlanmış. İnsanların neden bunu söylediğini anlamıyorum - 6 GiB RAM'im var ve RAM'in tükenmesine bile yaklaştığım tek zaman Chromium'u derlerken, bir sayfa dosyasını geçici olarak etkinleştirdiğim zamandı.

Tipik durumlarda hız artışı için gerçekten bir sayfa dosyasına * ihtiyacım var mı? Neden?

* Çökme dökümlerinin bir sayfa dosyasına ihtiyacı olduğunun farkındayım. Ben hiç çarpışma çöplüklerini kullanmıyorum, bu yüzden önemli değil.

Yanıtlar:


8

Bir sayfa dosyası hiçbir zaman performansı artırmaz, ancak her ikisini de düşürmez (uygun bellek yönetimi ile). Bununla birlikte, bir sayfa dosyası olmadan çalıştırmak, yalnızca kullanılamayan bellek isteyen uygulamalarla ilgili olarak sisteminizin kararsızlığını artırma eğiliminde olacaktır.

İşletim sisteminiz bellek yönetiminde özellikle kötü olmadıkça, 6GiB belleğe sahip bir sayfa dosyası çok az kullanılmalıdır. Bu hiçbir fayda görmeyecek demek değildir; IIRC MS Windows, kullanılabilir bellek bol olsa bile işleri disk belleği söz konusu olduğunda biraz çılgınca. (Neden, asla bilemeyeceğim.)

Ancak, sayfa dosyası kullanımda olmadığında ne olması etkinleştirmek için yeterli bir neden olabilir: sabit çökmeler. Çoğu uygulama istedikleri belleği almayı bekler. Yapmadıkları zaman çökerler. (Ah, ama birkaç bin baytta yaşamak zorunda olan eski günler gitti ... ve çok fazla geliştirici için, hafıza yönetimi ile uğraşma uygulaması da öyle.)

Bir uygulama doğru oluşturulduysa, güzel bir şekilde başarısız olur. (Şansla, hiç başarısız olmaz. Ama buna güvenmeyin.) Çoğu uygulamada, ellerinizde harika bir başarısızlık olacak. Ayrıca, bu sınıra yaklaşan daha fazla uygulamaya sahip olduğunuzda, sistem genelinde kararsızlığı görme olasılığınız artar.

Kendi deneyimlerimden örnek. Windows XP, 4GiB, Sayfa dosyası yok. Perf harikaydı. 4GiB sınırına yaklaşmaya başlayana kadar. Sonra işler çıldırdı: uygulamalar çökecekti, menü öğeleri sadece kısmen görünecekti (ya da hiç görünmeyecek), düğmeler hiçbir şey yapmayacaktı, vb. Performans daha kötü olsa bile sayfa dosyasına geri döndüm - genel kararlılık basitti daha iyi ve daha önemli.

Şimdi, belki de herhangi bir uygulama kullanmıyorsunuz veya 6GiB'yi zorlayacak uygulamalarınızda çalışmıyorsunuz, ancak yakınlaşabileceğiniz birkaç durumu düşünebilirim: video düzenleme, fotoğraf düzenleme, ses karıştırma ve prodüksiyon vb. aslında çok fazla veriyle uğraştığınız her şey (birlikte çalışarak veya akışla). Bu veriler bellek kapasitenizi aştığında, uygulamanızın yalnızca "puf" a çıkma olasılığı yüksektir.


Yani, sadece (Evet / Hayır) koyun: o, söylemek düzeltmek olduğunu ben 2 GiB RAM üzerinde kullanmak asla eğer , ben olmaz bir performans artışı ? Yoksa bu ön koşulda bile bir yerlerde hala bir uyarı var mı?
user541686

9
Hayır, bir sayfa dosyası performansı asla iyileştirmez . Sadece kararlılığı artırır . Disk belleği tanım gereği disk düzeyinde bir işlemdir ve disk işlemleri her zaman RAM düzeyi işlemlerden daha yavaştır. Ayrıca, 6GiB (asla 2GiB'yi geçmese bile) ile bile, Windows hala sinir bozucu bir şekilde kullanılmayan sayfalar diske çıkacağı için bazı performans sorunları yaşayacağınızdan daha olası değilsiniz. Bunun akıllıca olduğunu kim düşünürse düşünsün, 'düşerler!)
Kerri Shotts

Tamam. Belki de duymak istediğim şeydi, bilmiyorum, ama cevabınızı seviyorum. : P Kulağa oldukça makul geliyor, teşekkürler!
user541686

1
Doğru değil - bir pagefile performansı artırabilir, çünkü kullanılmayan verilerin takas üzerindeki yeri önbellekleme için kullanılabilir. Bu sizin için böyle bir düşüşe neden oldu.
peterh - Monica

1
Sayfa dosyası performansı artırabilir. Her türlü hızlı önbellek için kullanılabilen RAM'i, program başlatma / yükleme / çalışma performansını iyileştirir. Sayfa dosyası olmasaydı, bu değerli fiziksel RAM, çıkarılamaz önemsiz dosyalarla doldurulurdu.
Ark-kun

7

Mark Russinovich'in bu makalesi , sayfa dosyası hakkında bilmek istediğiniz her şeyi size anlatacaktır.

"Önbellek" sayfa dosyasının ne yaptığına göre kullanmak için uygun bir terim olup olmadığını bilmiyorum. Önbellek, veri için hızlı erişilebilir geçici bir tutma noktasıdır. Bir işletim sistemi, fiziksel RAM için çok fazla çekişme olduğunda sayfa dosyasına bir şeyleri "hata verir". Bu nedenle, programların bellek yetersizliği nedeniyle sabit çökmesini önlemek için RAM taşması için bir durma boşluğu. Ancak, Windows'un bir süredir erişilmeyen şeyleri sayfa dosyasına koymaya çalıştığına inanıyorum (ve Linux da bunu yapabilir), bu nedenle bu bir önbellek, ancak aslında birincil işlevi değil.

Her neyse, makaleyi okuyun. Size, sayfa dosyanızın neye ayarlanacağı konusunda iyi yönergeler verecektir. @Sandeep Bansal'ın dediği gibi, çalıştırmak için bir "gereksinim kontrolü" nin parçası olarak bir tane almanızı gerektiren nadiren bir oyun olabilir (ama hiçbirini bilmiyorum).

EDIT: Bu örnek, sayfa dosyasının rolünü anlamanıza yardımcı olabilir:

Diyelim ki 512MB RAM'iniz var. 250MB RAM tüketen simge durumuna küçültülmüş bir tarayıcının da dahil olduğu bir dizi programınız var ve o anda çalışan her şeyin toplam RAM kullanımı 500MB.

Böylece, 150MB RAM ayırmak isteyen başka bir program (kelime işlemci) söyleyin. Bellek yetersiz. Ancak, bir disk belleği sistemimiz varsa, simge durumuna küçültülmüş tarayıcınızı içeren bellek sayfaları diske sayfalanabilir. Böylece yeni program yüklenebilir.

Şimdi biraz sonra tarayıcıya geri dönmek istediğinizi varsayalım. Eh, sadece diske ne gönderdiğini "sayfa" gerekir. O anda yeterli boş RAM varsa, bunu sorunsuz bir şekilde yapabilir. Eğer yoksa, önce başka bir şeyin çağrılması gerekir. CPU için rekabet eden çok sayıda program varsa ve sürekli sayfalama varsa, işler yavaşlar ve "thrashing" olarak bilinen duruma sahip olursunuz. Tüm bu giriş ve çıkış daha yavaş performansa neden olur, ancak programların bellek yetersizliği nedeniyle "sabit" kilitlenmesini önler. Disk belleği dosyasının amacı budur. Çok fazla sayfalama, yani "thrashing" muhtemelen bir programdan daha iyi değildir, çünkü çoğu zaman daha fazla RAM alamaz.

Şimdi, belirli bir anda kullanılmayanları tahmin etmek için algoritmaların mevcut olup olmadığını, o zaman işletim sisteminin hemen kullanılacağını düşünmediği şeyleri "önceden sayfalayabilir". Bu, Windows için yeterli RAM'e sahip olsa bile var olduğu sayfa dosyasını kullanarak hesaplar. Mümkün olduğunca fazla RAM kullanılabilir hale getirmeye çalışıyor. Windows, ücretsiz RAM'in bir disk önbellek görevi gördüğü Linux'a benzer, bu nedenle dengeleme işlemi doğru oynatılırsa genel performansa katkıda bulunabilir. Bu, tümüyle OS tasarımının bir parçası ve binlerce programcıdan iyi bir işletim sistemine sahip olmanın neden 10 yıl sürdüğünü gösteriyor.

Yani, aslında sorunuzu cevaplamak için, sayfa dosyasını devre dışı bırakmanın tek yanlış yanı budur. Verdiğim örneğe geri dönersek, sayfa dosyası olmadan tarayıcınızı başlatamazsınız veya OOM hatalarını tahmin etmek için defalarca programlanmamış kötü yazılmış programlar gerçekten garip davranabilir.


@ultrasawblade: Hala anlamıyorum: Her türlü "önbellek" in amacı diske bir yolculuğu önlemektir . Yine de oraya gidiyorsanız, neden dosyayı bulunduğu yerden almıyorsunuz? Sayfa dosyasının amacı nedir?
user541686

@ultrasawblade: Ayrıca, yazı ile ilgili: diyor in general having [a page file] will mean more usable memory being available to the system. Bir dakika ne? Daha fazla kullanılabilir hafıza? > 3 GiB kalıcı olarak kullanılmayan RAM alanı yeterli değil mi? (2 GiB bile nadiren kullandığım için karıştı.)
user541686

2
Sayfa dosyaları önbellek DEĞİLDİR ! RAM'iniz dolarsa ve yine de sisteminizde daha fazla RAM'e sahip olduğundan emin olmak istiyorsanız, RAM'den diskinize (uykulu görünen işlemlerden) veri kopyalamaya başlayacaktır, böylece hala RAM'e sahip olursunuz. yeni süreçleriniz!
elysium yuttu

2
@ultrasawblade: Yaptığınız düzenlemeye karşı itirazım, örneğinizin% 97 RAM kullanımını (500/512), örneğim ise% 33 RAM kullanımını (6 üzerinden 2 GB) belirtmesidir. Ben edildi değil ben sınırına yakın alırsanız ne olduğu hakkında soran; Neden olan sorunların farkındayım. Hâlâ gitmek için oldukça uzun bir yolunuz varsa, hiçbir şeyin ya da benzeri bir şeyin gerçekleşmeyeceği (olması gereken?) Ne olacağını soruyordum. Benim durumum için aynı argümanı yapabilirseniz (6 GiB RAM ve 2 GiB kullanılıyor), bu çok daha iyi olurdu; aksi takdirde sorumu ele almaz.
user541686

3
Russinovitch bağlantısı için +1. Cevap var. Olası çökmeleri önlemek için bir güvenlik mekanizmasından vazgeçmek istiyorsanız, bu sizin perogatifinizdir. Windows, karar vermediği sürece sayfa dosyası olmadan iyi çalışır. ;)
Kara Marfia

2

Bir sayfa dosyası yalnızca çökme dökümlerinin depolanması için değil, bunun için esas olarak yapılmaz.

Sayfa dosyası, RAM'in tutması gerekmeyen verileri depolayabilmesi için vardır, bellekte bulunması gerekmeyen öğeler için bir önbellek gibidir, böylece diğer şeyler için daha fazla RAM sağlar.

6GB RAM'iniz varsa bir sayfa dosyasına ihtiyacınız olmayabilir, ancak belirli öğeler için bir sayfa dosyasına ihtiyacınız olabilir, birkaç oyunun bir sayfa dosyası gerektirdiğini ve varsa varsa yararlı olabileceğini unutmayın.

Belirli bir işlemin gerekli olması durumunda sorunlardan kaçınmak için 500MB Sayfa Dosyası oluşturmanın herhangi bir zararı yoktur.


Ama sorum şu: Diyelim ki asla 2'den fazla GiB RAM kullanmıyorum. Pagefiles dosyasını etkinleştirmek bana yine de bir hız artışı sağlıyor mu? ("
Zarar

6GB RAM ile PageFile her zaman başka şeyler için kullanılacak RAM olsa bile hiçbir şey fark etmeyeceksiniz. 4GB'ım var, asla gerçekten üstüne çıkma. Ancak 1GB Pagefile'm var, tıpkı günlük PC'lerde şu anda 500GB + HDD alanı var, bu yüzden en az 500-1000MB kayıp olmayacak
Sandeep Bansal

@Sandeep: Hımm ... bu "diğer şeyler" tam olarak nedir? Sayfa dosyasını açmamamın nedeni, RAM'in çok fazla RAM olmadığı zaman neden sabit diski kullanacağını anlamıyorum, bu yüzden bu "diğer şeylerin" ne olduğunu merak ediyorum.
user541686

Linux ile aynı, Linux neden erişmek için RAM olduğunda takas alanı kullanıyor? Pagefile, RAM'den uzak bir süredir kullanılmayan dosyaları tutar.
Sandeep Bansal

@Sandeep: Linux'un neden yaptığını bilmiyorum, benim için aynı fark. Yine de dosyaları sayfa dosyasında tutmanın anlamı nedir? RAM'da değilse, neden sadece diskte bulundukları yerden okumuyorsunuz?
user541686

1

İlk adım, bir Önbelleğin ne olduğunu ya da farklı önbelleklerin ne için kullanıldığını anlamaktır.
CPU, OP sonuçlarını, bayrak durumlarını ve hesaplanan adresleri saklamasına izin veren küçük bir dahili önbelleğe sahiptir. Çift çekirdekli bir iç önbellek yaklaşık 1mb olduğuna inanıyorum. Son derece hızlıdır, yalnızca CPU dahilileri tarafından erişilebilir ve en çok overclock yapılmış bir CPU'daki ısıdan en çok etkilenir.

Seviye 2 önbellek CPU'dan Belleğe işlemler için yüksek hızlı bir tampon görevi görür ve ayrıca önceden getirme ile toplanan kod dizilerini tutar. Çift çekirdekli bir kurulumda 6mb lvl2 önbellek olacağını düşünüyorum. Dahili önbellek, yalnızca bellek denetleyicisi ve CPU tarafından erişilebilir olduğundan daha yavaş olsa da, çok hızlıdır ve veri yolundaki özel bir hatta bulunur.

Bir sayfa dosyası gerçekten de bir önbellektir, çünkü bellekte mevcut olan veya olmayan verileri depolar. Bir O / S disk belleği dosyasını çeşitli görevler için kullanabilir, bunlardan biri henüz diske kaydedilmemiş bir veri dosyasının geçerli durumunu kaydetmektir. Bir sayfa dosyası yoksa, bu işlevselliği dahili olarak sağlamak üçüncü taraf uygulamasına bağlıdır. Bu senaryo ile ilgili sorun, çöp toplama konusunda birçok programın iyi davranmaması ve diskinizde kalan sahte .temp dosyalarının kalmasıdır. Bu kalıntılar kurulum bildiriminin bir parçası değildir ve kaldırma prosedürünü engelleyebilir ve ayrıca disk erişim hızını düşürebilir.

Bence bir takas dosyası normalde olması iyi bir şeydir. Gerçekten de, sisteminiz Ram ile doldurulmuşsa ve 1 belirli göreve adanmışsa ve bu uygulama tüm bunları hallediyorsa, bir takas dosyasına gerek olmayabilir. Bir örnek, Windows platformunda çalışan bir Arcade Video Oyunu olabilir, bunlar genellikle sadece mevcut cihazlar için gerekli sürücülerle yüklenir ve sürücü çekişmesi çekmesi muhtemel değildir. Yine de, çoğu uygulama, ortaya çıkabilecek tüm potansiyel sorunlara ve özellikle diğer üçüncü taraf uygulamalarından ve sürücü çekişmesinden etkilenenlerle ilgilenmez.

Bir sayfa dosyası ekledikten sonra kısa ve orta düzeyde bir performans düşüşü fark edebilseniz de, uzun süre performans tutarlı olmalıdır. Bir sayfa dosyasının olmaması başlangıçta daha hızlı görünebilir, ancak zamanla performans önemli ölçüde düşecektir.

Steven Malm, MCP.


"Bir sayfa dosyası yoksa, bu işlevselliği dahili olarak sağlamak üçüncü taraf uygulamasına bağlıdır." -> Ne demek istediğinizden emin değilim; programlar orada bir sayfa dosyası olup olmadığını gerçekten umursamıyor.
user541686

0

Kişisel deneyim

Şu anda 8GB RAM'li dizüstü bilgisayarımda sayfa dosyasının oluşturulmasını / kullanılmasını engelleme sorunları var. Hayatım cehennem. Sürekli "Düşük Bellek" istemleri, uygulamalar çökmesi vb.

Başka bir tartışma

Fiziksel RAM önbelleğinden veri kullanmak çok hızlıdır. Daha fazla "ücretsiz" fiziksel RAM, tutabileceği daha büyük önbelleğe sahiptir. İşletim sistemi fiziksel RAM'den sayfa dosyasına ne kadar hareketsiz veri taşıyabiliyorsa, sık erişilen verilerin önbellekleri için daha fazla fiziksel RAM serbest bırakılır.

Konumu değiştirdiğinizde konum verilerini yükleyen bir oyun oynadığınızı varsayalım. Ayrıca tek bir konum için yeterli olan oyuna 2GB diyelim ki çalışan web tarayıcınız var. Bir sayfa dosyası olmadan, konumu her değiştirdiğinizde veriler HDD'den yavaşça yüklenir. Bir sayfa dosyasıyla, kullanılmayan web tarayıcısı verileriniz sayfa dosyasına gönderilir ve değerli fiziksel RAM, çeşitli konumlar için verileri depolamak için kullanılır ve bu da çok daha hızlı konum yüküne neden olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.