กำหนดค่า RAM สำหรับ SQL Server และ NUMA


10

ผู้ดูแลฐานข้อมูลอุบัติเหตุที่นี่

คำถาม:

คุณจะยังคง จำกัด RAM สูงสุดสำหรับ SQL Server ด้วยตนเองแม้ว่าจุดประสงค์เดียวของเซิร์ฟเวอร์นั้นคือเพื่อให้บริการโปรแกรมฐานข้อมูล SQL Server เท่านั้น

ฉันมีเซิร์ฟเวอร์ Microsoft Windows 2012 R2, SQL Server 2012 Std, พร้อม 32GB RAM

ผู้ดูแลระบบเข้าสู่ระบบ SQL Server อย่างต่อเนื่องเพื่อใช้คอนโซลและทั้งหมด

ประการที่สองคุณจะตรวจสอบว่าเซิร์ฟเวอร์ Windows นี้เปิดใช้งาน NUMA ได้อย่างไร

คำตอบ:


9

คุณจะยังคง จำกัด RAM สูงสุดด้วยตนเองสำหรับ MSSQL แม้ว่าจุดประสงค์เดียวของเซิร์ฟเวอร์นั้นคือการให้บริการ MSSQL เท่านั้นหรือไม่

นั่นคือหัวข้อที่ถกเถียงกันอยู่เล็กน้อยเมื่อพิจารณาว่าคุณมี SQL Server 2012 ที่นี่ หากคุณจะถามคำถามเดียวกันเกี่ยวกับ SQL Server 2005/2008 ซึ่งอยู่ใน Windows Server 2003/2008 ฉันขอแนะนำอย่างยิ่งให้ตั้งค่าขีด จำกัด หน่วยความจำสูงสุดของเซิร์ฟเวอร์เนื่องจากข้อบกพร่องซึ่งอยู่ในระบบปฏิบัติการ Windows (2003/2008) แต่การกำหนดค่าหน่วยความจำและประสิทธิภาพของระบบปฏิบัติการเปลี่ยนไปอย่างมีนัยสำคัญจาก SQL Server 2012 เป็นต้นไปและ Window Server 2008/2012 r2 เป็นต้นไปตามลำดับถ้าคุณถามความคิดเห็นของฉันYou can leave max server memory configuration to default if you have enough RAM on system and you are just using database engine features.ถ้าคุณถามวิศวกร MS เกี่ยวกับเรื่องนี้พวกเขาก็จะบอกว่า SQL Server ตัวเองและถ้าคุณมีระบบเฉพาะสำหรับเครื่องมือฐานข้อมูล SQL คุณสามารถปล่อยให้หน่วยความจำสูงสุดของเซิร์ฟเวอร์ SQL Server ไปยัง SQL Server เริ่มต้นจะจัดการได้อย่างมีประสิทธิภาพ

อย่างไรก็ตามถ้าคุณยังต้องการกำหนดค่าคุณสามารถอ่านคำถามและคำตอบที่คล้ายกันที่ให้ไว้ในเธรด SE นี้

มีสถานการณ์ที่ต้องใช้หน่วยความจำเซิร์ฟเวอร์สูงสุดฉันได้อธิบายไว้ในเธรด SE นี้

ประการที่สองคุณจะตรวจสอบว่าเซิร์ฟเวอร์ Windows นี้เปิดใช้งาน NUMA ได้อย่างไร

การค้นหาเพียงเล็กน้อยจะนำคุณไปสู่บทความBlogs.msdnนี้ มันมีคำอธิบายภาพต่าง ๆ เมื่อ SQL Server รู้ NUMA และใช้มัน


2
ฉันชอบใช้ตารางของ Brent Ozarสำหรับการอ้างอิงอย่างรวดเร็วเกี่ยวกับการตั้งค่าหน่วยความจำสำหรับกรณีการใช้งานทั่วไป
LowlyDBA

3
นั่นคือหลักสูตรสำหรับการอ้างอิงอย่างรวดเร็วและทำหน้าที่เป็นจุดเริ่มต้นสำหรับค่า ผมค่อนข้างแน่ใจว่าถ้าคุณถามเขาว่าเขาจะบอกว่าคุณต้องดูเพิ่มเติมได้ที่เคาน์เตอร์ perfmon ไปถึงมูลค่าที่เหมาะสม นี่คือเหตุผลที่ฉันเพิ่มลิงค์ SE ในกรณีที่ OP ต้องการตั้งค่าหน่วยความจำเซิร์ฟเวอร์สูงสุด
Shanky

2

SQL รับNUMAรู้เพื่อให้คุณสามารถค้นหาNUMAข้อมูลโดยใช้แบบสอบถาม คุณยังสามารถใช้คิวรีนี้เพื่อดูจำนวนNUMAโหนดที่คุณมีและซีพียูและคอร์ใดที่ได้รับมอบหมายซึ่งNUMA:

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

หรือกี่NUMA:

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

-2

ใช่คุณควร จำกัด หน่วยความจำสูงสุดสำหรับ SQL Server แม้ว่าเซิร์ฟเวอร์จะมีจุดประสงค์เดียวเท่านั้น มิฉะนั้น SQL Server อาจเริ่มต้นใช้หน่วยความจำ Windows เองต้องทำงานได้ดี เป็นเรื่องปกติที่จะเหลือ 1GB -> 20% ของ RAM ทั้งหมดไปยัง Windows ขึ้นอยู่กับความต้องการของคุณ

การกำหนดค่า NUMA ของเซิร์ฟเวอร์จะแสดงในตัวจัดการงานโดยเลือกกระบวนการคลิกขวาและเลือกตั้งค่าความสัมพันธ์ Windows Resource Monitor ยังแสดงข้อมูล NUMA

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.