เมื่อเร็ว ๆ นี้เรามีปัญหาเกี่ยวกับสภาพแวดล้อม HADR ของ SQL Server 2014 ซึ่งเซิร์ฟเวอร์ตัวใดตัวหนึ่งขาดเธรดของผู้ปฏิบัติงาน
เราได้รับข้อความ:
กลุ่มเธรดสำหรับกลุ่มความพร้อมใช้งาน AlwaysOn ไม่สามารถเริ่มเธรดผู้ปฏิบัติงานใหม่ได้เนื่องจากมีเธรดผู้ปฏิบัติงานที่พร้อมใช้งานไม่เพียงพอ
ฉันแล้วเปิดคำถามอื่นเพื่อให้ได้คำสั่งที่ (ผมคิดว่า) จะช่วยให้ผมวิเคราะห์ปัญหา ( มันเป็นไปได้ที่จะเห็นการใช้งานซึ่ง SPID ซึ่งจัดตารางเวลา (ด้ายคน)? ) แม้ว่าตอนนี้ฉันจะมีแบบสอบถามเพื่อค้นหาเธรดที่ใช้ระบบนี้ แต่ฉันไม่เข้าใจว่าทำไมเซิร์ฟเวอร์นั้นถึงไม่มีเธรดของผู้ปฏิบัติงาน
สภาพแวดล้อมของเรามีดังนี้:
- 4 Windows Server 2012 R2
- SQL Server 2014 Enterprise
- 24 ตัวประมวลผล -> 832 เธรดผู้ทำงาน
- 256 GB ราม
- 12 กลุ่มความพร้อมใช้งาน (โดยรวม)
- 642 ฐานข้อมูล (โดยรวม)
ดังนั้นเซิร์ฟเวอร์ที่มีปัญหามีการกำหนดค่าต่อไปนี้:
- 5 กลุ่มความพร้อมใช้งาน (3 หลัก / 2 รอง)
- 325 ฐานข้อมูล (127 หลัก / 198 รอง)
MAXDOP = 8
Cost Threshold for Parallelism = 50
- แผนการใช้พลังงานถูกตั้งค่าเป็น "ประสิทธิภาพสูง"
ในการ "แก้ไข" ปัญหาเราจึงล้มเหลวกลุ่มความพร้อมใช้งานหนึ่งกลุ่มไปยังเซิร์ฟเวอร์รอง การกำหนดค่าของเซิร์ฟเวอร์นั้นอยู่ในขณะนี้:
- 5 กลุ่มความพร้อมใช้งาน (2 หลัก / 3 รอง)
- 325 ฐานข้อมูล (77 หลัก / 248 รอง)
ฉันกำลังตรวจสอบกระทู้ที่มีอยู่กับคำสั่งนี้:
declare @max int
select @max = max_workers_count from sys.dm_os_sys_info
select
@max as 'TotalThreads',
sum(active_Workers_count) as 'CurrentThreads',
@max - sum(active_Workers_count) as 'AvailableThreads',
sum(runnable_tasks_count) as 'WorkersWaitingForCpu',
sum(work_queue_count) as 'RequestWaitingForThreads' ,
sum(current_workers_count) as 'AssociatedWorkers'
from
sys.dm_os_Schedulers where status='VISIBLE ONLINE'
โดยปกติเซิร์ฟเวอร์จะมีเธรดของผู้ปฏิบัติงานประมาณ 250 - 430 เธรด แต่เมื่อปัญหาเริ่มต้นขึ้นจะไม่มีพนักงานเหลืออยู่
ทุกวันนี้พนักงานที่มีอยู่ลดลงจาก 327 ลงเหลือ 50 แต่เพียงหนึ่งนาทีจากนั้นกลับขึ้นไปอยู่ที่ประมาณ 400
ฉันเห็นคำถามอื่นแล้ว ( การใช้เธรดผู้ทำงานระดับสูงของ HADR ) แต่มันไม่ช่วยฉัน
ระบบของเราทำงานอย่างเสถียรมานานกว่าหนึ่งปีโดยไม่มีปัญหาใด ๆ เราไม่มีข้อผิดพลาดหรือการเปลี่ยนแปลงที่สำคัญอื่น ๆ ในการกระจายฐานข้อมูล
เรากำลังใช้ "การกระทำแบบซิงโครนัส" ระหว่างแบบจำลอง จากความเข้าใจของฉันไม่มีการบีบอัดที่เกี่ยวข้องดูการปรับแต่งการบีบอัดสำหรับกลุ่มความพร้อมใช้งานในเอกสารประกอบ
มีใครมีความคิดว่าสิ่งที่ใช้เธรดผู้ปฏิบัติงานทั้งหมดหรือไม่
แก้ไข: พบหน้านี้ที่มีข้อมูลจำนวนมากเกี่ยวกับปัญหาเหล่านั้นอย่างแน่นอน http://www.techdevops.com/Article.aspx?CID=24