เคียวรีการมอนิเตอร์ WQL ทั่วไป


12

คุณใช้แบบสอบถาม WQL ใดในการตรวจสอบปัญหาคอขวดของ Windows คุณต้องการใช้เพื่อรับข้อมูลใดที่คล้ายกับ 'top' หรือ 'netstat' ช่วงเวลาใดที่คุณจะสำรวจความคิดเห็นที่?

นี่คือบางสิ่งที่ฉันเห็นว่ามีประโยชน์

SELECT PercentDiskTime, AvgDiskQueueLength, DiskReadBytesPerSec, DiskWriteBytesPerSec FROM Win32_PerfFormattedData_PerfDisk_PhysicalDisk

SELECT Caption, CommittedBytes, AvailableBytes, PercentCommittedBytesInUse, PagesPerSec, PageFaultsPerSec FROM Win32_PerfFormattedData_PerfOS_Memory

SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfOS_Processor

SELECT Caption, WorkingSet, PageFaultsPerSec,IOReadBytesPerSec, IOWriteBytesPerSec, ThreadCount, HandleCount FROM Win32_PerfFormattedData_PerfProc_Process

SELECT Caption, BytesReceivedPerSec, BytesSentPerSec FROM Win32_PerfFormattedData_Tcpip_NetworkInterface

สิ่งที่ยอดเยี่ยมนี้เป็นประโยชน์กับโปรแกรมเมอร์แอปพลิเคชันเช่นกัน ส่วนใหญ่ของสิ่งนี้ไม่สามารถใช้ได้โดยตรงผ่านการเรียก Win32 API ใด ๆ WMI มีประโยชน์ แต่ไม่พูดถึงมากเท่าที่ควรจะเป็น!
Andon M. Coleman

คำตอบ:


7

นี่เป็นคำถามที่ยอดเยี่ยมอย่างแท้จริงและเป็นความอัปยศที่ไม่มีความรักมากขึ้น!

ทฤษฎีพื้นฐานของการวิเคราะห์ของฉันคอขวดคือการรักษาระบบเป็นกล่องที่มี 4 ประเภทของทรัพยากร จำกัด : หน่วยประมวลผลหน่วยความจำดิสก์และเครือข่าย ดังนั้นฉันต้องการได้รับหมายเลขพื้นฐานสำหรับแต่ละเหล่านี้เพื่อตรวจสอบสุขภาพของกล่อง ฉันต้องการตัวเลขที่ตีความได้ง่าย: สูงไม่ดีต่ำมากดี 0 เป็นสิ่งที่ดีที่สุดแม้ว่าจะไม่สามารถทำได้อย่างสมบูรณ์แบบ (หลังจากทั้งหมดเราซื้อคอมพิวเตอร์เพื่อทำงานใช่มั้ย) เมื่อฉันเห็นว่าทรัพยากรสี่อย่างใดเป็นคอขวดหลักฉันสามารถดำเนินการตรวจสอบว่าโปรแกรมหรือกระบวนการใดกำลังกินทรัพยากรทั้งหมดและทำการตัดสินใจอย่างมีความรู้ว่าฉันต้องการเพิ่มทรัพยากรนั้นหรือปรับโปรแกรม / กระบวนการให้ใช้ ทรัพยากรน้อย

ฉันจะจัดรูปแบบตัวนับประสิทธิภาพหลักที่ฉันใช้จากบทความนี้เป็นแบบสอบถามแบบ WMIC เนื่องจากไม่จำเป็นต้องใช้สคริปต์ (แม้ว่าจะเป็นไปได้อย่างแน่นอน!) คุณสามารถป้อนคำค้นหาแต่ละข้อเหล่านี้ลงในคอนโซล cmd ได้โดยตรง:

wmic path Win32_PerfFormattedData_PerfOS_System get ProcessorQueueLength

เหนือขึ้นไปเป็นตัวประมวลผลคิวยาว สิ่งนี้บอกจำนวนเธรดที่รออยู่ในคิวที่ CPU จะจัดการ ตัวเลขสูงไม่ดีตัวเลขต่ำดี โดยทั่วไปฉันคิดว่าค่า <10 เป็นระบบที่ดีต่อสุขภาพ

wmic path Win32_PerfFormattedData_PerfOS_Memory get PagesInputPerSec

ด้านบนคือหน่วยความจำหน้าที่นำเข้าต่อวินาทีอัตราการอ่านหน้าจากดิสก์เพื่อแก้ไขข้อบกพร่องของหน้ากระดาษอย่างหนัก ความผิดพลาดของหน้าฮาร์ดเกิดขึ้นเมื่อกระบวนการอ้างถึงหน้าในหน่วยความจำเสมือนที่ไม่ได้อยู่ในหน่วยความจำกายภาพและจะต้องดึงมาจากดิสก์ ตัวนับนี้ทำงานได้ดีที่สุดในมุมมองกราฟของ Perfmon บนคอมพิวเตอร์ที่มีสุขภาพดี (ไม่ใช่คอขวด) คุณจะเห็นหนามแหลมเป็นครั้งคราวเนื่องจากข้อมูลถูกอ่านจากดิสก์ไปยัง RAM ยิ่งมีหนามแหลมมากเท่าไหร่คุณก็ยิ่งเห็นมากขึ้นและยิ่งมีหน่วยความจำที่ จำกัด มากขึ้น หากระบบยังคงอยู่ที่ค่าที่ไม่ใช่ศูนย์เป็นระยะเวลานานกว่าพูดห้าวินาทีคุณอาจมีระบบคอขวดหน่วยความจำ

wmic path Win32_PerfFormattedData_PerfDisk_PhysicalDisk get AvgDiskQueueLength, name

เหนือขึ้นไปเป็นPhysicalDisk เฉลี่ยดิสก์คิวยาว ฉันคิดว่านี่เป็นตัวบ่งชี้สำคัญของความสมบูรณ์ของระบบเนื่องจากคอขวดของหน่วยความจำจะชะงักลงดิสก์เนื่องจากมีการสลับไฟล์เพจมากเกินไปและมักจะผลักดันการใช้งาน CPU เช่นกัน มันจะแสดงรายการสำหรับดิสก์ที่เมานต์แต่ละตัวรวมถึงดิสก์ทั้งหมด ดิสก์เดียวที่มีประสิทธิภาพดีจะมีค่านี้ที่ 2 หรือต่ำกว่า สำหรับอาร์เรย์ให้แบ่งจำนวนแกนหมุนตามความยาวของคิว (เช่น: 4 แกนหมุนในอาร์เรย์หารด้วยความยาวคิว 8 = 2 ซึ่งหมายความว่าอาร์เรย์ทำงานได้ดี)

wmic path Win32_PerfFormattedData_Tcpip_NetworkInterface get OutputQueueLength, PacketsReceivedErrors, Name, currentbandwidth

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

เมื่อฉันทราบว่าทรัพยากรใดมีการใช้มากเกินไปฉันมักจะพึ่งพาProcess Explorerหรือวัตถุกระบวนการของ Perfmon เพื่อค้นหาว่ากระบวนการใดเป็นหมูทรัพยากร


ขอบคุณสำหรับรายละเอียดบทความ ฉันแปลงเป็นวิกิชุมชน ฉันคิดว่าอีกแง่มุมของคำถามนี้คือช่วงเวลาเลือกตั้ง คอขวดบางอย่างจะปรากฏขึ้นในเวลาสั้น ๆ ส่วนอื่น ๆ อาจถูกสุ่มตัวอย่างด้วยความถี่ที่น้อยกว่า
Yancy

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