Konfigurasikan RAM untuk SQL Server dan NUMA

10

Admin DB yang tidak disengaja di sini.

Pertanyaan:

Apakah Anda masih secara manual membatasi RAM maksimum untuk SQL Server meskipun tujuan satu-satunya dari server itu adalah hanya untuk melayani mesin basis data SQL Server?

Saya memiliki Microsoft Windows 2012 R2 Server, SQL Server 2012 Std, dengan 32GB RAM.

Admin terus-menerus masuk ke SQL Server untuk menggunakan konsolnya dan semuanya.

Kedua, bagaimana Anda memeriksa apakah server Windows ini diaktifkan NUMA?

gunung berapi
sumber

Jawaban:

9

Apakah Anda masih secara manual membatasi RAM maksimum untuk MSSQL meskipun tujuan dari server itu hanya untuk melayani MSSQL?

Itu adalah topik yang sedikit bisa diperdebatkan mengingat Anda memiliki SQL Server 2012 di sini. Jika Anda akan mengajukan pertanyaan yang sama tentang SQL Server 2005/2008, yang pada Windows Server 2003/2008, saya akan sangat menyarankan untuk menetapkan batas memori server maks karena bug yang ada di sistem operasi Windows (2003/2008). Tetapi konfigurasi memori dan kinerja OS berubah secara signifikan dari SQL Server 2012 dan seterusnya dan Window Server 2008/2012 r2 dan seterusnya, jika Anda bertanya pendapat saya, You can leave max server memory configuration to default if you have enough RAM on system and you are just using database engine features.Jika Anda bertanya kepada insinyur MS tentang ini, mereka juga akan mengatakan bahwa SQL Server dikodekan dengan baik untuk mengelola memori dengan itu sendiri dan jika Anda memiliki sistem yang didedikasikan hanya untuk mesin database SQL Anda dapat meninggalkan SQL Server max server memori ke SQL Server default akan mengelolanya secara efisien.

Ngomong-ngomong, jika Anda masih ingin mengonfigurasi, Anda dapat membaca Pertanyaan serupa dan jawaban yang diberikan pada SE Thread ini

Ada situasi di mana memori server maks diperlukan Saya telah menguraikannya di utas SE ini

Kedua, bagaimana Anda memeriksa apakah server Windows ini diaktifkan NUMA?

Sedikit pencarian akan membawa Anda ke artikel Blogs.msdn ini. Ini memiliki berbagai deskripsi gambar ketika SQL Server sadar dan menggunakannya.

Shanky
sumber
2
Saya suka menggunakan tabel Brent Ozar untuk referensi cepat tentang pengaturan memori untuk kasus penggunaan umum.
LowlyDBA
3
Itu tentu saja untuk referensi cepat dan bertindak sebagai titik awal untuk suatu nilai. Saya cukup yakin jika Anda bertanya kepadanya, dia akan mengatakan Anda perlu melihat lebih jauh pada penghitung perfmon untuk mencapai nilai optimal . Inilah sebabnya saya menambahkan tautan SE untuk berjaga-jaga jika OP ingin mengatur memori server maks.
Shanky
2

SQL NUMAsadar sehingga Anda dapat menemukan NUMAinfo menggunakan kueri. Anda juga dapat menggunakan kueri ini untuk melihat berapa banyak NUMAnode yang Anda miliki dan CPU dan core mana yang ditugaskan NUMA:

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

Atau berapa banyak NUMA:

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

Ya, Anda harus membatasi memori maks untuk SQL Server meskipun server hanya memiliki satu tujuan. Kalau tidak, SQL Server dapat mulai menggunakan memori yang Windows sendiri harus beroperasi dengan baik. Biasanya meninggalkan 1GB -> 20% dari total RAM ke Windows, tergantung kebutuhan Anda.

Konfigurasi NUMA server ditampilkan di Task Manager dengan memilih proses, klik kanan dan pilih Set Affinity. Windows Resource Monitor juga menampilkan informasi NUMA.

Vemund Haga
sumber