Windows 2008R2'de SQL 2008R2 için önerilen sayfa dosyası boyutu


25

Bu Microsoft makalesi - Windows Server 2008 ve veya Windows 2008 R2’nin 64 bit sürümleri için uygun sayfa dosyası boyutunun nasıl belirleneceği, 64 bit Windows 2008 ve Windows 2008R2’nin sayfa dosya boyutunu hesaplamak için rehberlik sağlar. Bu şüphesiz genel amaçlı sunucular için gayet iyi çalışıyor. Windows 2008 / R2 64 bit ile çalışan SQL Server 2008R2 için kılavuzun ne olduğunu merak ediyorum.

Hafıza verilerinde az miktarda sayfa dosyasını vurmak istediğimizi farz ediyorum, aksi takdirde SQL disk için iki kez isabet ediyor olabilir. SQL Server, bellekteki verilerin sayfa dosyasına ulaşmasına izin veriyor mu? Rehberlik için SQL Server 2008 R2 Çevrimiçi Kitapları aracılığıyla avladım ancak henüz sayfa dosyası kullanımından bahsetmedim.

Potansiyel bir kullanım senaryosu: 64 GB RAM'e sahip bir fiziksel sunucu verildiğinde, 64 GB RAM'in tamamı için bir sayfa dosyası gerekli midir? 96 GB sayfa dosyası için ayarlamalı mıyız? Tek bir dosya için bu biraz aşırı görünüyor. Bilinen bilgeliğin Windows’un RAM’de uygulamaları değiştirmeyi kolaylaştırmak amacıyla sayfa dosyasını belleğe dönüştürdüğünü biliyorum, ama bu doğru mu? 64GB'tan daha küçük bir sayfa dosyası performansı düşürür mü?

Yanıtlar:


15

Yalnızca normal fiziksel belleği kullanan SQL Server için özel bir ayar yoktur.

Sadece MS Windows için ne diyorsa yapın

Oh, ve biz yine de konudayken daha fazla RAM al ... ;-)


6

İçine bak lock pages in memory. Bu şekilde, SQL servis hesabınızın diske disk belleği kullanmak yerine mevcut RAM kullanması tercihini verebilirsiniz. Bellekte kilitlenen sayfalar hakkında daha fazla bilgi için bu bağlantıyı kontrol edin . Bir pasaj izler:

Windows ilkesi Bellekte Sayfaları Kilitle seçeneği varsayılan olarak devre dışıdır. Bu ayrıcalık Adres Pencereleme Uzantılarını (AWE) yapılandırmak için etkinleştirilmelidir. Bu ayar, hangi hesapların verileri fiziksel bellekte saklamak için bir işlem kullanabileceğini belirler ve sistemin diskteki sanal belleğe veri ayıklamasını önler. 32 bit işletim sistemlerinde, AWE kullanmıyorken bu ayrıcalığı ayarlamak sistem performansını önemli ölçüde azaltabilir. 64 bit işletim sistemlerinde sayfaları bellekte kilitlemek gerekli değildir.

Lütfen sisteminizde kullanmadan önce bu özelliği test edin.


4
'Belleğe sayfaları kilitleme' belki de daha iyi bir güvenlik önlemi olarak tanımlanabilir, SQL belleğinin işletim sistemi tarafından disk belleği tarafından engellenmesini önlemek için. support.microsoft.com/kb/918483
Mark Storey-Smith

4

Evet, 64 GB RAM için en az 64 GB takas dosyasına ihtiyacınız var (96 GB önerilir). Potansiyel değişim nedeniyle değil, Windows Bellek Yöneticisinin tasarımı nedeniyle. Bu sorun hakkında daha önce büyük RAM olan makinelerde System pagefile boyutunda yazdım :

Bir işlem / MEM_COMMITyoluyla bellek istediğinde, istenen boyutun sayfa dosyasında ayrılması gerekir. Bu ilk Windows NT sisteminde geçerliydi ve hala bkz bugün doğrudur Win32 Sanal Bellek Yönetme :VirtualAllocVirtualAllocEx

Hafıza kaydedildiğinde, fiziksel hafıza sayfaları tahsis edilir ve sayfa dosyasında yer ayrılır.

Alternatif oom_killer gibi bir şey olabilir .

Öyleyse tavsiyeye uyun, bazen işler göründüğünden biraz daha karmaşık olur. Ve AWE'nin getirdiği komplikasyonlara ve kilit sayfaların ayrıcalığına bile dokunmadım ...


Çok ilginç ... Makinede RAM'den daha küçük bir takas dosyasını ayarladığınızda nasıl çalışır? Gerçekten de, her bellek ayırma için sayfa dosyasındaki boşluğu ayırmamız gerekirse, sayfa dosya boyutunun belleğinin değerinden daha fazlasını kullanamaz mıyız? Bunun pratikte nasıl çalıştığından emin değilim.
shlomoid

1
Uygulamada tam olarak böyle çalışıyor. Taahhütlü bir VA bölgesi, gerçek bir takas rezervasyonu ile desteklenmelidir. Bir saklıdır VA bölge olmak zorunda değildir, ancak SQL Server neredeyse olmayan taahhüt çekinceleri istekleri olmadı.
Remus Rusanu

2
Bunun doğru olduğunu sanmıyorum. Windows Internals kitapları gibi çeşitli kaynaklardan anladığım kadarıyla, sanal adres alanının, sayfa dosyası veya RAM gibi fiziksel bir şeyle desteklenmesi gerektiğidir . Bu nedenle, sanal bellek> ([Fiziksel bellek Windows görüyor] + [Disk belleği dosyasının boyutu]) yapmaya çalışırsanız, "Sisteminiz sanal bellek az demektir" hata iletisine sahip olursunuz. Mark Russinovich, burada “taahhüt edilen hafıza” başlıklı bölümde bunun hakkında konuşuyor .
James L,

5
Sanırım kendinize taahhütlü VA bölgelerinin, yalnızca disk belleği dosyası olmayan bir sistemi önyükleyerek ve Windows'un başladığını doğrulayarak takas rezervasyonlarıyla desteklenmesi gerekmediğini ve dolayısıyla 0 bayttan fazla VAS olması gerektiğini doğrulayabilirsiniz.
James L,

Bu gönderi yanlıştır - maksimum işleme gereksinimlerinizden daha fazla belleğe sahipseniz, sayfa dosyası olmadan çalıştırmanız tamamen mümkündür. Ancak, çarpışma dökümlerini yazamayacağınız anlamına gelecektir.
Steve365
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.