SQL Server ไม่ได้ใช้คอร์ / เธรดของ CPU ทั้งหมด


15

หลังจากอัปเกรดฮาร์ดแวร์ของ SQL Server ของเราเราสังเกตเห็นในตัวจัดการงานของ Windows ว่าอินสแตนซ์ SQL นั้นใช้เพียงครึ่งหนึ่งของเธรดที่มีให้:

ผู้จัดการงาน.

เซิร์ฟเวอร์มีฮาร์ดแวร์และซอฟต์แวร์ต่อไปนี้:

  • Windows 2008 R2 Enterprise 64 บิต SP1
  • Intel Xeon E7-4870 - โปรเซสเซอร์ 4 ตัว (40 คอร์, 80 เธรด)
  • Microsoft SQL Server 2012 Enterprise Edition (64 บิต)

วิ่งselect cpu_count from sys.dm_os_sys_infoกลับ 40

ระบบปฏิบัติการเห็น 80 กระทู้ทั้งหมด

เหตุใดจึงใช้กำลังการประมวลผลของเซิร์ฟเวอร์เพียงครึ่งเดียว

เรามีฮาร์ดแวร์และซอฟต์แวร์เดียวกันบนเซิร์ฟเวอร์สองเครื่องและทั้งคู่มีพฤติกรรมเหมือนกัน

คำตอบ:


23

ในบันทึกข้อผิดพลาด SQL Server ควรบอกสาเหตุ ฉันพบสิ่งนี้ในระบบลูกค้า (จริงๆแล้วเพิ่งวางข้อความสำหรับ Google Juice):

SQL Server ตรวจพบซ็อกเก็ต 4 ตัวมี 8 คอร์ต่อซ็อกเก็ตและตัวประมวลผลเชิงตรรกะ 16 ตัวต่อซ็อกเก็ตตัวประมวลผลเชิงตรรกะ 64 ตัว ใช้ตัวประมวลผลเชิงตรรกะ 40 ตัวโดยอิงตามการอนุญาตให้ใช้งานเซิร์ฟเวอร์ SQL นี่คือข้อความที่ให้ข้อมูล กระทำของผู้ใช้ไม่จำเป็นต้องมี.

ฉันได้คำอธิบายที่น่าจะเป็นจากที่นี่ :

สำหรับลูกค้าที่มี Software Assurance สำหรับสิทธิการใช้งานเซิร์ฟเวอร์ SQL EE ที่มีอยู่ (หรือการเข้าถึงภายใต้ข้อตกลงองค์กรปัจจุบันของพวกเขาในช่วงระยะเวลา) รุ่น Enterprise Edition ถูกสร้างขึ้นเพื่อให้สามารถอัพเกรดเป็น SQL Server 2012 รุ่นนี้มีข้อ จำกัด ทางเทคนิค ใช้แกนประมวลผลเพียง 20 แกนเท่านั้น (เธรด CPU 40 เธรดพร้อม Hyperthreading)

สรุป: ในบันทึกข้อผิดพลาดรุ่นที่จะได้รับการรายงานว่าเป็นอย่างใดอย่างหนึ่งหรือEnterprise Edition Enterprise Edition: Core-based Licensingหากมีการระบุไว้ก่อนหน้านี้เช่นเดียวกับในกรณีของระบบลูกค้าดังกล่าวข้างต้นคุณจะต้องได้รับใบอนุญาตเป็นแกนกลางเพื่อใช้แกนประมวลผลที่มีอยู่ทั้งหมด

หากไม่เป็นเช่นนั้นและคุณได้รับอนุญาตให้ใช้งานสำหรับคอร์ทั้งหมดแล้วให้ตรวจสอบการตั้งค่ามาสก์ความสัมพันธ์ของคุณโดยเฉพาะหากตั้งค่าไว้และฮาร์ดแวร์พื้นฐานได้รับการอัพเกรด


เรามีปัญหาที่คล้ายกัน เราสร้าง VM พร้อม 1 ซ็อกเก็ตและ 32 คอร์ Sql จะรับรู้ 8 CPU เท่านั้น เราเปลี่ยนเป็น 8 ซ็อกเก็ตและ 4 คอร์ปัญหาหายไป เราทำงานที่องค์กรแก้ไข sql 2008r2 บน windows 2008r2
user3799984

ฉันมีปัญหาเดียวกันกับรุ่นมาตรฐาน เราใช้ซ็อกเก็ต 8 ตัวและมันจะไม่ใช้ส่วนที่เหลือ สิ่งที่เราต้องทำคือเปลี่ยน VM และกำหนดค่า 4 sockets 2 คอร์
Nicolas de Fontenay

7

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


3

ฉันเห็นสิ่งนี้ในโพสต์อื่นโดย Ajmer Dhariwal:

แม้ว่าคุณจะมีรุ่น Enterprise หากรูปแบบสิทธิการใช้งานที่ใช้คือเซิร์ฟเวอร์ + สิทธิ์การเข้าถึงไคลเอ็นต์ (CAL) อ้างอิงจากนั้นเซิร์ฟเวอร์จะ จำกัด 20 คอร์ฟิสิคัลต่ออินสแตนซ์

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