SQL Server maksimum bellek, sayfa dosyası, maksimum derece paralelliği


15

Üç soru, evrenin DBA ustalarının cevaplayabileceğini umuyor:


  1. SQL Server'ın maksimum belleğini ayarlamanın en iyi yöntem olduğunu biliyorum. 44 GB RAM'e sahip bir sunucuda SQL Server yüklüyse, SQL Server maksimum belleğini yaklaşık 37 GB olarak ayarlamalıyız.

Ancak, SQL Analysis Service ve SQL Reporting Services, SQL Server ile aynı sunucuya yüklüyse ne yapmalıyız? Daha sonra Analiz'in diğer 22GB RAM'i alabilmesi için SQL Server'ın maksimum belleğini 22GB RAM'e ayarlamak daha mı iyi?


  1. 44 GB RAM ile SQL Server çalıştıran bir sunucuda sayfa dosya boyutunu ayarlamak için en iyi yöntem nedir? Brent Ozar'da ( http://www.brentozar.com/archive/2014/06/sql-server-setup-checklist-free-ebook-download/ ) aşağıdakileri okudum :

SQL Server dev sayfa dosyasına ihtiyaç duymaz. sunucuya başka uygulamalar yüklüyorsanız (bunu önermiyoruz-- SQL Server izole edilmelidir). daha büyük bir sayfa dosyasına ihtiyacınız olabilir. SQL Server, kutuda çalışan tek büyük hizmetse, genellikle sistem sürücüsünde 2 GB boyutunda bir sayfa dosyası oluştururuz.

Microsoft, Remus tarafından verilen tavsiyeyle eşleşen RAM'in 1.5 katı olarak yönetilen sayfa dosya sistemini ayarlamamız gerektiğini söylüyor (bkz. -> http://rusanu.com/2009/11/22/system-pagefile-size-on-machines-with -büyük-koç / ).

44GB RAM ile sunucumuzda SQL Analysis Service ve SQL Reporting Services'ın yanında SQL Server yüklüdür. Sayfa dosyasını ne boyutta ayarlamalıyız?


  1. SharePoint için, SharePoint grubunun bir parçası olan ve SharePoint'in veritabanlarını depoladığı SQL Server için maksimum paralellik derecesi 1 olarak ayarlanmalıdır. Artık bu konuda SharePoint grubunun bir parçası olmayan (sql2 olarak adlandır) bir sunucumuz var. SQL Server, SQL Analiz ve Raporlama yüklü. SharePoint veritabanlarını bu sunucuda depolamaz, ancak SharePoint'in okuduğu ve yazdığı raporlama ve analiz veritabanları / küpleri oluşturduk.

Brent Ozar diyor:

Temel kural: bunu donanımınızdaki tek bir NUMA düğümü (işlemci) soketindeki fiziksel çekirdek sayısına veya daha azına ayarlayın

Bu SQL Server örneğinde, 4 VCPU'ya sahip olduğunda maksimum paralellik derecesi için ne yapılandırmalıyız?


Umarım sadece bana değil, aynı zamanda en iyi uygulamalarda iç içe ormandaki ormandan daha fazla bilgi edinebilirsiniz.

Yanıtlar:


12

Sizin 3 soru dokunma max memory, page fileve max dop setting.

MAKSİMUM BELLEK


Sunucu yalnızca Analiz hizmetleri olmadan SQL Server adanmışsa (SSAS başka bir canavar olduğundan), Glenn'in önerilen en iyi uygulamaları iyi bir başlangıç ​​noktasıdır . Ek bileşenler için, maksimum belleği nasıl yapılandıracağına dair Jonathan'ın bloguna bakmalısınız .

SQL Server Maksimum ve Minimum bellek yapılandırmasını yanıtladım . Sunucu örneğinizde çalışan çok sayıda SSIS paketiniz varsa bu yardımcı olacaktır .

Sayfa dosyası


Normalde C:\yeterli disk alanına sahip sürücüdeki sürücüden uzağa ayarladım . Remus ve Brent'ün tavsiyesine katılıyorum. Olmalı PAGE FILE FOR SQL SERVER = 1.5 * RAM. Sorun gidermeden FULL MEMORY DUMP (normalde Microsoft CSS tarafından istenir) almanız gereken bir durumda kendinizle karşılaştığınızda bir sayfa dosyası yararlı olacaktır.

Windows KB 889654'ün 64 bit sürümleri için uygun sayfa dosyası boyutunu nasıl belirleyeceğinizi okuyun ve Buck Woody sayfa dosyası hakkında konuşuyor .

MAX DOP Ayarı


Sharepoint için maxdop = 1örnek genişliğinde ayarlanması önerilir . Normal bir sql sunucusu için, takip etmenizi öneririm - SQL Server'da MAXDOP hesaplamak için iyi, tekrarlanabilir bir yol nedir? Sizin için hesaplayacak bir senaryom var.

Öz , aşağıdadır ( KB 2806535 de aynı şeyden bahseder):

8 or less processors    ===> 0 to N (where N= no. of processors)
More than 8 processors  ===> 8
NUMA configured         ===> MAXDOP should not exceed no of CPUs assigned to each 
                                 NUMA node with max value capped to 8
Hyper threading Enabled ===> Should not exceed the number of physical processors.

Bir yan not olarak, okumanızı öneririm - Yüksek performanslı iş yüklerine sahip SQL Server 2012 ve SQL Server 2014 için önerilen güncellemeler ve yapılandırma seçenekleri


Unutulmaması gereken bir nokta, Buck Woody'nin yukarıda atıfta bulunulan blog yazısında Remus, "Günü kurtaran şey AWE: AWE aracılığıyla ayrılan belleğin bir sayfa dosyası rezervasyonu olması gerekmediği (fiziksel RAM'de kilitli olduğundan ve bu nedenle olamaz AWE kullanımı x64'te otomatiktir. " AWE ile görüldüğü gibi, büyük bir sayfa dosyasına ihtiyacımız yok.
Jason Carter

@Kin "Remus ve Brent'ün tavsiyesine katılıyorum" dedin. Ancak Brent'in Kurulum Kılavuzu (yukarıdaki OP tarafından alıntılanmıştır) ve Remus Makalesinden geçtikten sonra, çelişkilidirler. Bu yüzden bana sayfa dosyasıyla ilgili cevabınız beklemede olan sorular bırakıyor.
Magier

1
@Magier Sorunu teşhis etmek için tam bir bellek dökümü almamız gereken duruma geldiğim için MS tavsiyesi ile gitme eğilimindeyim - Windows veya sql sunucusu olup olmadığını bilmiyorduk. Bu durumda MS tavsiyesi en iyisidir. Bu duruma girmezseniz, Brent'in tavsiyesi de geçerlidir. Güvenli tarafta olma eğilimindeyim, bu yüzden devam ediyorum PAGE FILE FOR SQL SERVER = 1.5 * RAM. Senin sorunun cevabı bu mu ?
Kin Shah

3

44GB RAM ile sunucumuzda SQL Analysis Service ve SQL Reporting Services'ın yanında SQL Server yüklüdür. Sayfa dosyasını ne boyutta ayarlamalıyız?

Kin'in daha önce bahsettiğine ekleyerek Perfmon Counters, sayfa dosya boyutunun ne olması gerektiğini hesaplamak için kullanmanızı öneririm . Ayrıca, Remus sayfa dosyasının tavsiyesinin sistemdeki RAM'in 1,5 katı olması gerektiğini kabul ediyorum . Ancak bu öneri tüm olası yönleri ve senaryoları ve 'genel öneriyi' dikkate almaktadır. Sanırım somut değerle daha çok ilgileniyorsun. İşte burada

Tek bir sistemin sayfa dosyası gereksinimleri, sunucunun rolüne, yüke vb. Göre değişiklik gösterir. Özel taahhütlü bellek kullanımını sistem genelinde veya sayfa başına dosya bazında izlemek için kullanabileceğiniz bazı performans sayaçları vardır. Bir işlemin özel işlenmiş belleğinin ne kadarının yerleşik olduğunu ve disk belleği dosyalarına ne kadar disk belleği yüklendiğini belirlemenin bir yolu yoktur.

Bellek: Taranan Bayt: Taranan sanal belleğin bayt sayısı. Bu mutlaka sayfa dosyası kullanımını temsil etmez - işlem tamamen yerleşik hale getirilmezse kullanılacak sayfa dosya alanı miktarını temsil eder

Bellek: İşlem Sınırı: Disk belleği dosyalarını genişletmek zorunda kalmadan işlenebilen bayt sanal belleğin sayısı.

Disk Belleği Dosyası:% Kullanım Kaydedilen disk belleği dosyasının yüzdesi

Disk Belleği Dosyası:% Kullanım Zirvesi Gerçekleştirilen disk belleği dosyasının en yüksek yüzdesi

Sayfa dosyası için uygun değeri ayarlamak üzere lütfen yukarıdaki sayaçları kullanın. Sayfa dosyası hakkında daha fazla bilgi almak için Bu Bağlantıyı okuyabilirsiniz .

Daha sonra Analiz'in diğer 22GB RAM'i alabilmesi için SQL Server'ın maksimum belleğini 22GB RAM'e ayarlamak daha mı iyi?

Hayır, sanmıyorum, bu yüzden işletim sistemi gereksinimlerini kaçırdınız. Önce SQl Server için optimum maksimum sunucu belleği ayarlamanız gerekir. Bu SE iş parçacığının doğru maksimum sunucu belleği değerini ayarlama hakkında daha fazla ayrıntısı var. Yine, whay'ın optimum değer olacağını görmek için perfmon sayaçlarına ağır ve her zaman cevap veriyorum. Bu makaleyi okumanızı ve SSAS için en uygun değeri ayarlamak için sayaçlardan yardım almanızı öneririm . Bir keresinde bu blogu SSAS için bellek değeri ayarlamak için kullandım. SSAS ile pek ilgilenmiyorum, bu yüzden yorumlarım sadece bu makaleyle sınırlı olacak.

Sharepoint örnekleri için MAXDOP = 1 değerini geniş çapta kabul edilen parametresi olarak saklamalısınız. IIRC ise , maksimum paralellik derecesi varsayılan değere bırakıldığında sık sık kilitlenmelerle karşılaşıldıktan sonra bu öneri geniş kabul görmüştür


3

Sayfa dosya boyutu için şimdiye kadar verilen diğer tüm cevaplar nispeten güncel olmayan makaleler referans. Bu Technet Blog yazısı daha günceldir (Ekim 2015) ve modern sistemlerde ideal sayfa dosyası boyutunu hesaplamak için daha ayrıntılı bir yol sağlar.

Eski 1.5 x RAM başparmak kuralının artık geçerli olmadığını açıkça belirtiyorlar.

Bağlantı çürümesini önlemek için bu makalenin temel içeriğini aşağıda yapıştırdım.

En az 1 hafta boyunca sunucunuzdan en yüksek kullanımda çalışan metrikler toplamayı önerdiklerini unutmayın; bu nedenle, projelerinizin planlama ve uygulama aşamalarında bunu yapacak bir konumda olmayabilirsiniz ve projenizde daha sonra zaman ayırmanız gerekecek böyle yaparak.


Sayfa dosyasını boyutlandırırken uygulamalarımızın bellek ihtiyaçlarını ve çökme döküm ayarlarını dikkate almamız gerekir.

Uygulamanızın ne kadar belleğe ihtiyacı olduğunu nasıl anlarsınız? En iyi yol bir temel almaktır.

Run Performance Monitor (Perfmon)
Go to Data Collector Sets\User Defined
Right click on User Defined and select New
Select Create Manually and next
Check Performance counter
Add the following counters:

        Memory\Committed Bytes - Committed Bytes is the amount of committed virtual memory, in bytes.
        Memory\Committed Limit - Amount of virtual memory that can be committed without having to extend the paging file
        Memory\% Committed Bytes In Use - Ratio of Memory\Committed Bytes to the Memory\Commit Limit 

Not: Bilgileri uzun bir süre (en az bir hafta) boyunca topladığınızdan ve sunucunun yoğun kullanımda çalıştığından emin olun.

Sayfa dosyası boyutu formülü şöyle olmalıdır:

(Taranan Baytların maksimum değeri + herhangi bir iş yükü patlaması için% 20 ek tampon) -RAM boyutu

Örneğin: Sunucunun 24 GB RAM'i varsa ve maksimum Taranan Bayt 26 GB ise, önerilen sayfa dosyası şu şekildedir: (26 * 1.2) -24) = 7.2 GB

İkinci faktör ne olacak: sistem çöktüğünde bilgi kaydetmemiz gereken boyut?

Bellek dökümü boyutu türüne göre belirlenir:

Complete Memory Dump  RAM Size + 257 MB
Kernel Memory Dump  The amount of kernel-mode memory in use (on 32-bit maximum is 2 GB, on 64-bit the maximum can go up until 8 TB)
Small Memory Dump  64KB  512 KB

Çoğu durumda Çekirdek Bellek Dökümü, kök neden analizi için yeterince iyidir, çünkü Tam Bellek Dökümü yalnızca belirli durumlarda gereklidir, örneğin kullanıcı modunda ne olduğunu görmek istersiniz.

Deneyimlerime göre, Çekirdek Bellek Dökümü boyutu genellikle aşağıdaki gibidir:

On System with up to 256GB RAM =  8-12 GB size for Kernel Memory dump
On System with up to 1.5TB RAM = 8-32 GB size for Kernel Memory dump

Ancak, bu sayılar bir Microsoft resmi önerisi DEĞİLDİR ve sunucularınızda farklı olabilir, bu yüzden uygulamadan önce her zaman test edin.


2

Alıntıladığınız insanlardan biri olduğum için cevap veriyorum, heh.

1. Analysis Services'ı çalıştırdığımda maksimum belleği ne olarak ayarlamalıyım?

SSAS, SQL Server'ınıza yüklenen diğer tüm uygulamalara benzediği için orada rehberlik bulamazsınız: ne kadar bellek kullanacağınızı bilmiyoruz. SSAS / SSIS / SSRS'yi üçüncü taraf uygulamaları olarak ele alın - SQL Server kutusuna "ücretsiz" olarak dahil edilirler. Tamamen farklı CPU, bellek ve depolama ihtiyaçları var.

2. Sayfa dosya boyutunu neye ayarlamalıyım?

Önerilerim, Windows'un mini bir döküm yapabilmesi için. Microsoft desteğini aramanız gereken bir sorunla karşılaşırsanız, mini dökümle başlayabilirsiniz. Sorun tekrarlanırsa ve mini dökümünden (veya hata günlüğü gibi diğer bilgi kaynaklarından) çözemezlerse, 1,5x RAM boyutuna gitmenizi isteyebilirler.

Microsoft'un 1.5x RAM önerileri, sisteminiz çöktüğünde Windows'un TAM bellek dökümü yapabilmesi içindir.

Bu günlerde, 64-128-256GB RAM'e sahip sunucularla, bir çökme sırasında Windows'un tüm bellek içeriğini yazmak için duraklatması genellikle iyi bir fikir değildir. SQL Server'ın yedeklenmesini ve çalışmasını ve tam yerine mini döküm içeriklerle uğraşmasını tercih edersiniz. Tam dökümleri daha sonra kullanmak üzere kaydedin - Microsoft'a 64 + GB dökümü dosyası yüklemeye gerek kalmadan genellikle tüm kariyerinize gidebilirsiniz. (Onda bol şans.)

3. SharePoint için MAXDOP'u ne olarak ayarlayabilirim?

"Benim" önerileriniz Microsoft KB 2806535'ten alınmıştır . Genel olarak başlayın, ancak belirli bir uygulama size farklı bir şey söylediğinde, uygulamaları hakkında genel olarak SQL Server'dan farklı bir şey biliyorlar - bunu takip edin.

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.