SQL Server ve NUMA için RAM'i yapılandırma


10

Burada yanlışlıkla DB yöneticisi.

Soru:

Sunucunun tek amacı yalnızca SQL Server veritabanı motorunu sunmak olsa bile, SQL Server için maksimum RAM'i yine de manuel olarak sınırlar mısınız?

32GB RAM ile Microsoft Windows 2012 R2 Server, SQL Server 2012 Std var.

Yönetici konsolunu ve tümünü kullanmak için sürekli SQL Server'a giriş yapar.

İkinci olarak, bu Windows sunucusunun NUMA'nın etkin olup olmadığını nasıl kontrol edersiniz?

Yanıtlar:


9

Sunucunun tek amacı yalnızca MSSQL sunmak olsa da, MSSQL için maksimum RAM'i yine de manuel olarak sınırlar mısınız?

Burada SQL Server 2012 olduğu düşünülürse biraz tartışmalı bir konudur. Windows Server 2003/2008'de bulunan SQL Server 2005/2008 hakkında aynı soruyu soracak olsaydınız, Windows işletim sisteminde (2003/2008) bulunan hatalar nedeniyle bir maksimum sunucu bellek sınırı belirlemenizi şiddetle tavsiye ederim. Ancak bellek yapılandırması ve işletim sistemi performansı sırasıyla SQL Server 2012'den ve Window Server 2008/2012 r2'den önemli ölçüde değişti, fikrimi You can leave max server memory configuration to default if you have enough RAM on system and you are just using database engine features.sorarsanız, MS mühendislerine bunu sorarsanız, SQL Server'ın belleği yönetmek için iyi kodlandığını da söylerler sadece SQL veritabanı motoruna adanmış bir sisteminiz varsa, SQL Server max sunucu belleğini varsayılan SQL Server'a bırakabilirsiniz, verimli bir şekilde yönetecektir.

Yine de hala yapılandırmak istiyorsanız bu SE Konu benzer soru ve cevapları okuyabilirsiniz okuyabilirsiniz

Maksimum sunucu belleği gereken bir durum var Bu SE iş parçacığı

İkinci olarak, bu Windows sunucusunun NUMA'nın etkin olup olmadığını nasıl kontrol edersiniz?

Küçük bir arama sizi bu Blogs.msdn makalesine yönlendirecektir. SQL Server NUMA farkında olduğunda ve kullanırken çeşitli resimsel açıklaması vardır.


2
Genel kullanım durumları için bellek ayarlarına hızlı başvuru için Brent Ozar'ın tablosunu kullanmayı seviyorum .
LowlyDBA

3
Bu hızlı başvuru için elbette ve bir değer için başlangıç ​​noktası görevi görür . Ona sorarsanız, optimum değere ulaşmak için perfmon sayaçlarına daha fazla bakmanız gerektiğini söyleyeceğinden eminim . Bu nedenle OP'nin maksimum sunucu belleği ayarlamak istemesi durumunda SE bağlantısı ekledim.
Shanky

2

SQL NUMAfarkındadır, böylece NUMAbir sorgu kullanarak bilgi bulabilirsiniz . Bu sorguyu, kaç NUMAdüğümünüz olduğunu ve hangi CPU ve çekirdeklerin hangilerine atandığını görmek için de kullanabilirsiniz NUMA:

SELECT parent_node_id, scheduler_id, cpu_id
FROM sys.dm_os_schedulers WITH (NOLOCK) 
WHERE [status] = N'VISIBLE ONLINE';

Veya kaç tane NUMA:

select COUNT(distinct Parent_node_id)
from sys.dm_os_schedulers
where [STATUS] = 'VISIBLE ONLINE'
    and Parent_node_ID < 64

-2

Evet, sunucunun tek bir amacı olsa bile, SQL Server için maksimum belleği sınırlamanız gerekir. Aksi takdirde SQL Server Windows'un kendisinin iyi çalışması için gereken belleği kullanmaya başlayabilir. İhtiyaçlarınıza bağlı olarak toplam RAM'in 1GB ->% 20'sini Windows'a bırakmak normaldir.

Sunucunun NUMA yapılandırması, bir işlem seçerek sağ tıklatın ve Yakınlık Ayarla'yı seçerek Görev Yöneticisi'nde görüntülenir. Windows Kaynak Monitörü de NUMA bilgilerini görüntüler.

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.