จำกัด การใช้งาน CPU สูงสุด SQL SERVER ด้วย WSRM


10

ฉันมีเซิร์ฟเวอร์จริงที่ใช้งาน SQL Server อยู่หนึ่งอินสแตนซ์

ฉันสังเกตเห็นว่าบ่อยครั้งที่เซิร์ฟเวอร์นี้ใช้งาน CPU 100%

ทีมไอทีของฉันไม่มีความสุขกับเรื่องนี้และแนะนำให้เราสำรอง 2 จาก 32 คอร์สำหรับระบบปฏิบัติการ

ใช้งานได้ดีตอนนี้การใช้งานสูงสุดจะต่ำกว่า 90% นอกจากนี้การดึงข้อมูลช้าจากผู้ใช้หลายคนจะไม่ถูกรายงานอีกต่อไป

มีเหตุผลใดที่จะไม่ใช้ WSRM (Windows System Resource Manager) ด้วยวิธีนี้ - แทนที่จะเป็น SQL Resource Governor?


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

โหลดแบบใดที่ทำงานบนเซิร์ฟเวอร์นี้ กระบวนการประเภทใดที่ใช้ CPU 100% OLTP นี้หรือการวิเคราะห์หรือกราฟหรือ
Max Vernon

@Forrest เมื่อคุณพูดถึงการปรับแต่ง - คุณหมายถึง SQL Server เองหรือโครงสร้างคิวรี / ตารางหรือไม่ หากคุณหมายถึง SQL Server โปรดให้ลิงก์กับสิ่งที่ต้องดู หาก queiries / tables ฉันจะเลือกใช้เมื่อฉันสามารถทำได้ แต่ผู้ใช้บางคนมีความใส่ใจในการออกแบบน้อย!
ManInMoon

คำตอบ:


14

มีเหตุผลใดที่จะไม่ใช้วิธีการที่คุณกำหนดไว้หรือไม่? อย่างแน่นอน

ลองนึกภาพคุณซื้อรถ - รถที่เมื่อคุณกด 50MPH เครื่องยนต์จะร้อนเกินไป ปฏิกิริยาของคุณที่มีต่อสถานการณ์นี้คือการ จำกัด รถยนต์ให้อยู่ที่ 49 ไมล์ต่อชั่วโมงหรือเพื่อค้นหาความผิดปกติของเครื่องยนต์หรือไม่?

ทำไมคุณควร จำกัด รถยนต์ไว้ที่ 49MPH ผู้ผลิตระบุว่าสามารถขับได้เร็วถึง 80 ไมล์ต่อชั่วโมง - คุณชอบที่จะขับรถเร็วดังนั้นคุณจึงต้องการที่จะใช้ความเร็วนี้ - ถ้าไม่ใช่เพราะปัญหาความร้อนสูงเกินไปของแช่ง

รถที่คุณซื้อนั้นแพงมากจริงๆ เครื่องยนต์แต่ละสูบจำเป็นต้องใช้ให้เกิดประโยชน์สูงสุดเพื่อที่คุณจะได้ไม่ต้องเสียเงิน!

ด้วยการ จำกัด การเข้าถึงเซิร์ฟเวอร์ SQL ให้กับ CPU คุณจะพลาดประสิทธิภาพการทำงาน คุณอาจแก้ไขปัญหาด้านประสิทธิภาพการทำงานได้ชั่วคราวโดยตรวจสอบให้แน่ใจว่า CPU พร้อมใช้งานสำหรับระบบปฏิบัติการที่จะใช้ แต่คุณยังไม่ได้ตอบคำถามจริง - ทำไม SQL Server ถึงใช้ CPU ถึง 100%

คำแนะนำของฉันมีดังนี้:

ค้นหาสิ่งที่เป็นปัญหาจริงและแก้ไข อย่าปิดบังปัญหาด้วยกระบองที่มีประสิทธิภาพ ปัญหาจะปรากฏขึ้นอีกครั้งและตีคุณในบรรทัดคว่ำลงเมื่อปริมาณงานของเซิร์ฟเวอร์เพิ่มขึ้นตามการเติบโตตามธรรมชาติ

ในฐานะที่เป็นการแก้ไขชั่วคราวผู้ว่าการทรัพยากรสามารถนำมาใช้เพื่อลด CPU ที่ใช้จนกว่าคุณจะพบปัญหาที่แท้จริง


11

Erik Darlingกล่าวถึงเหตุผลเชิงปฏิบัติที่ใหญ่ที่สุดที่ไม่ได้ใช้ WSRM ในความคิดเห็นในคำถามของคุณ:

... ไม่มีการ จำกัด การใช้ CPU ซึ่งกันและกันในกระบวนการอื่น ๆ SQL Server อาจไม่ใช้คอร์ทั้งสอง แต่สิ่งอื่น ๆ อาจใช้อีก 30 SQL Server ที่ใช้อยู่ มันช่างบ้าคลั่งจริง ๆ

หากสิ่งนี้ใช้ได้ผลกับคุณแล้วให้ลองทำดู - เราทุกคนยุ่งและคุณสามารถใช้เวลากับปัญหาใด ๆ เหมาะแก้ปัญหาจะแก้ไขคำสั่งพื้นฐาน / ปัญหาที่กำลังขับรถ CPU ไปยังจุดที่มีปัญหาการใช้งานที่เห็นได้ชัด (ซึ่งจอร์จครอบคลุมของเขาในคำตอบที่ดี )

เอริคพูดต่อไป

นอกจากนี้คุณกำลังจ่ายสิทธิ์ใช้งาน SQL Server ให้

จากมุมมองทางธุรกิจนี่อาจเป็นส่วนที่แย่ที่สุดของข้อตกลง WSRM - คุณจ่ายค่าลิขสิทธิ์ต่อคอร์สำหรับ 2 คอร์ที่ไม่ได้ใช้อย่างชัดเจน ในช่วงเวลาของการเขียนนี้ที่เหลือ $ 3k หรือ $ 14k บนโต๊ะ (ขึ้นอยู่กับ Standard vs Enterprise)

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