ตัวนับประสิทธิภาพใดที่คุณสามารถดูบนอินสแตนซ์ของเซิร์ฟเวอร์ SQL เพื่อตรวจสอบประสิทธิภาพและความสมบูรณ์


10

ฉันเป็นนักเรียนจากมหาวิทยาลัย Fontys ใน Eindhoven และตอนนี้ฉันกำลังดำเนินการสัมภาษณ์หลายชุดเพื่อช่วยในการพัฒนาเครื่องมือ SQL Server และฉันต้องการรับคำติชมจากผู้เชี่ยวชาญในสาขานี้

หนึ่งในคำถามของฉันคือ:

ตัวนับประสิทธิภาพใดที่คุณสามารถดูบนอินสแตนซ์ของเซิร์ฟเวอร์ SQL เพื่อตรวจสอบประสิทธิภาพและความสมบูรณ์โดยรวม

โดยเฉพาะอย่างยิ่งฉันสนใจค่าเกณฑ์เมื่อดีกลายเป็นไม่ดี

Jamil Young Eindhoven เนเธอร์แลนด์

คำตอบ:


15

นี่คือการสอนของฉัน Perfmon สำหรับ SQL Server: http://www.brentozar.com/archive/2006/12/dba-101-using-perfmon-for-sql-performance-tuning/

สำหรับตัวนับและเกณฑ์เพิ่มเติมเรานี่คือโปสเตอร์ที่เราทำเมื่อฉันไปที่ Quest: http://www.quest.com/documents/landing.aspx?id=11635


นั่นเป็นไฟล์ PDF ที่ยอดเยี่ยมจากภารกิจ ผู้รักษาประตูแน่นอน พวกเขาควรทำเพื่อ DMV ด้วยเช่นกัน
StanleyJohns

ที่จริงแล้วเราทำ! พวกเขามักจะได้รับจากการประชุมกลุ่มผู้ใช้และการประชุม
เบรนต์โอซาร์

6

นี่เป็นหัวข้อใหญ่ที่มีเนื้อหามากมายพร้อมกับ Googling ในฐานะที่เป็นจุดเริ่มต้นสิ่งเหล่านี้เป็นตัวนับที่ฉันมักจะมองก่อน:

หน่วยประมวลผล - เวลาตัวประมวลผล%

ระบบ - ความยาวคิวของตัวประมวลผล

คุณอาจได้รับค่าเป้าหมายที่แตกต่างกันสำหรับการใช้งาน CPU จาก DBA ทุกครั้งที่คุณถาม สิทธิ์การใช้งาน SQL Server มีราคาแพงดังนั้นในแง่หนึ่งคุณต้องการเพิ่มการใช้งาน CPU ให้สูงสุดในขณะที่คุณไม่ต้องการลดความพร้อมใช้งาน ในโลกอุดมคติที่มีปริมาณงานที่เข้าใจดีคุณอาจกำหนดเป้าหมายการใช้งาน 70% เตือนที่ 80-90% แจ้งเตือนที่ 90% + ย้อนกลับไปในโลกแห่งความเป็นจริงด้วยปริมาณงานที่สูงสุดและต่ำสุดคุณอาจรู้สึกสบายกว่าที่ตั้งเป้าหมายไว้เฉลี่ย 50-60%

หน่วยความจำ - เมกะไบต์ที่มีอยู่

แฟ้มเพจจิ้ง - การใช้งาน%

ด้วย SQL Server โดยเฉพาะขึ้นอยู่กับ RAM ที่ติดตั้งหน่วยความจำที่มีอยู่น้อยกว่า 100-200mb อาจบ่งบอกถึงความหิวโหยและความเสี่ยงของการเพจจิ้ง โดยทั่วไปเราไม่ต้องการเห็นกิจกรรมของไฟล์หน้าเว็บมากนักดังนั้นฉันจะตรวจสอบว่า% การใช้งานมากกว่า 2% หรือไม่และเกี่ยวข้องถ้ามันตี 5%

Buffer Manager - อัตราส่วนการเข้าถึงแคชบัฟเฟอร์

ผู้จัดการบัฟเฟอร์ - อายุขัยหน้า

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

สถิติ SQL - คำขอชุด / วินาที

สถิติ SQL - การคอมไพล์ / วินาที

สถิติ SQL - การคอมไพล์ / วินาที

การร้องขอ / วินาทีเป็นการวัดที่ดีเยี่ยมสำหรับวิธีการที่“ ยุ่ง” เซิร์ฟเวอร์ ค่าการคอมไพล์ / การรวบรวมซ้ำสูงอาจบ่งบอกถึงวัฏจักรของ CPU ที่สูญเปล่าไปกับการรวบรวมแบบสอบถาม

ดิสก์ทางกายภาพ - เฉลี่ย ดิสก์วินาที / อ่าน

ดิสก์ทางกายภาพ - เฉลี่ย ดิสก์วินาที / เขียน

ดิสก์ที่มีอยู่จริง - ดิสก์อ่าน / วินาที

ดิสก์ทางกายภาพ - ดิสก์เขียน / วินาที

แนวทางคร่าวๆสำหรับระบบ IO ที่กำหนดค่าไว้อย่างถูกต้องคือ <5ms (นึกคิด 1ms) สำหรับล็อกไดรฟ์ <20ms (นึกคิด <10ms) สำหรับข้อมูล การอ่าน / เขียนต่อวินาทีควรพิจารณาจากขีด จำกัด ที่ทราบสำหรับไดรฟ์เช่นถ้าคุณมีความจุ 1,000 IOPS ฉันจะประเมินตัวเลือกการอัปเกรดเมื่อ IOPS เฉลี่ยถึง 750


มีบางสิ่งในระดับนั้นที่จะตรวจสอบการหยุดชะงักและรออยู่หรือ
bernd_k

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