พีซีของคุณทำงานช้าหรือไม่? เรียนรู้วิธีระบุปัญหาด้วย Perfmon ใน Windows

การปรับปรุงครั้งล่าสุด: 14/08/2025

  • PerfMon ช่วยให้สามารถวัดผลแบบเรียลไทม์และบันทึกในระยะยาวด้วยตัวนับที่แม่นยำและกำหนดค่าได้
  • Collector Sets และ Logman ช่วยให้จับภาพซ้ำๆ และทำงานอัตโนมัติบนเซิร์ฟเวอร์ได้
  • เกณฑ์สำหรับหน่วยความจำ ซีพียู ดิสก์ และเครือข่ายช่วยตรวจจับคอขวดและการรั่วไหล
  • Reliability Monitor จะช่วยเสริมการวิเคราะห์โดยแสดงความล้มเหลวและปัญหาความเข้ากันได้

โปรแกรมตรวจสอบประสิทธิภาพ PerfMon บน Windows

Perfจ (การตรวจสอบประสิทธิภาพ) คือ เครื่องมือขั้นสูงสุดสำหรับการตรวจสอบใน WindowsPerfMon: ช่วยให้คุณดูและวิเคราะห์เมตริกประสิทธิภาพแบบเรียลไทม์ในระยะยาวสำหรับ CPU หน่วยความจำ ดิสก์ เครือข่าย และกระบวนการเฉพาะต่างๆ PerfMon แตกต่างจาก Task Manager ตรงที่มันจะสุ่มตัวอย่างเป็นระยะๆ และบันทึกลงในดิสก์ ทำให้เหมาะอย่างยิ่งสำหรับการค้นหาปัญหาที่เกิดขึ้นหลังจากใช้งานไปหลายชั่วโมง เช่น หน่วยความจำล้น หรือการรั่วไหลของทรัพยากรในบริการและแอปพลิเคชัน

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

PerfMon คืออะไร และควรใช้เมื่อใด?

 

Performance Monitor (PerfMon) คือโปรแกรมดูและบันทึกค่าตัวนับพื้นฐานของ Windowsนำเสนอเมตริกในรูปแบบกราฟและข้อมูลดิบที่ได้จากตัวนับระบบและแอปพลิเคชัน (เช่น จาก .NET CLR หรือกระบวนการเฉพาะ) ข้อได้เปรียบที่ใหญ่ที่สุดเหนือยูทิลิตี้แบบ “เร็ว” เช่น ผู้จัดการงาน คือคุณสามารถปล่อยให้มันทำงานเป็นเวลาหลายชั่วโมงหรือหลายวันพร้อมการสุ่มตัวอย่างเป็นระยะๆ เพื่อตรวจจับแนวโน้มที่แท้จริง (จุดสูงสุด เส้นฐาน การเติบโตที่ยั่งยืน)

Perfจ เป็นสิ่งสำคัญสำหรับ วินิจฉัยการเติบโตของหน่วยความจำ จัดการหรือการรั่วไหลของเธรดและแยกส่วนประกอบที่มีปัญหาโดยการทดสอบเฉพาะเจาะจง ตัวอย่างเช่น หากคุณสงสัยว่าหน่วยความจำรั่ว คุณจะเปิดใช้งานตัวนับ เช่น Private Bytes, Handle Count และ Thread Count สำหรับกระบวนการที่ได้รับผลกระทบ ควบคู่ไปกับตัวนับหน่วยความจำ .NET CLR เช่น # Bytes ใน Heaps ทั้งหมด และขนาด Heap Gen 2 สำหรับแอปพลิเคชัน .NET เพื่อดูว่าการเติบโตเกิดขึ้นระหว่างหรืออยู่นอก GC หรือไม่

เปิด PerfMon และโหมด /res /report /rel /sys

วิธีเปิด PerfMon และโหมดพิเศษ

 

คุณสามารถเปิด PerfMon ได้ จากเมนูเริ่ม ค้นหา “performance” หรือ “perfmon” และเรียกใช้ในฐานะผู้ดูแลระบบ เมื่อคุณไปสร้างบันทึกหรือสอบถามคอมพิวเตอร์ระยะไกล

หากคุณต้องการ บรรทัดคำสั่ง (Win+R หรือ CMD) คุณมีโหมดโดยตรงที่มีประโยชน์มากพร้อมรูปแบบต่อไปนี้:

perfmon </res|report|rel|sys>

แต่ละตัวเลือกทำอะไร?

  • / res เพื่อเปิดมุมมองทรัพยากร
  • /รายงาน เพื่อเปิดตัวชุดตัวรวบรวมข้อมูลการวินิจฉัยระบบและดูรายงาน
  • /เรล เพื่อเปิด Reliability Monitor
  • / sys เพื่อไปที่การตรวจสอบประสิทธิภาพแบบคลาสสิกโดยตรง

สภา: หากต้องการตรวจสอบความน่าเชื่อถือของอุปกรณ์ perfmon / rel เป็นทางลัดโดยตรงสู่เสถียรภาพและประวัติจุดบกพร่อง

การตรวจสอบความน่าเชื่อถือ นอกจากนี้ยังอยู่ใน Control Panel > System and Security > Security and Maintenance อีกด้วย ทางลัดอีกทางหนึ่งคือ พิมพ์ "reliab" ลงในช่องค้นหาในเมนู Start แล้วเลือก "View reliability history" คุณจะเห็นเหตุการณ์สำคัญ คำเตือน และข้อมูลต่างๆ แบ่งตามวันหรือสัปดาห์ พร้อมการเข้าถึง รายละเอียดทางเทคนิค ของแอปพลิเคชันและความล้มเหลวของไดรเวอร์

เนื้อหาพิเศษ - คลิกที่นี่  จะแก้ปัญหาความเข้ากันได้กับ SSD ได้อย่างไร

การสร้างภาพแบบเรียลไทม์: การเพิ่มและทำความเข้าใจตัวนับ

 

หากต้องการดู แผนภูมิสดเปิด "Performance Monitor" ในแผนผังด้านซ้าย หากมีตัวนับที่โหลดไว้ล่วงหน้าและคุณต้องการเริ่มต้นใหม่ ให้เลือกตัวนับเหล่านั้นในตารางด้านล่าง แล้วกด ซุป จากนั้นในพื้นที่แผนภูมิ คลิกขวา > เพิ่มตัวนับ… เพื่อเปิดกล่องโต้ตอบที่มีหมวดหมู่ทั้งหมดที่มีอยู่

เลือก หมวดหมู่ของความสนใจ เคาน์เตอร์ และอินสแตนซ์ของวัตถุ (เช่น กระบวนการของคุณ) หากต้องการวินิจฉัยหน่วยความจำและทรัพยากรในแอปเฉพาะ ให้เพิ่มตัวนับคีย์เหล่านี้จากกลุ่ม กระบวนการ y หน่วยความจำ .NET CLR ตามความเหมาะสม:

  • กระบวนการ \ ไบต์ส่วนตัว:หน่วยความจำส่วนตัวที่จัดสรรโดยกระบวนการ (ไม่แชร์กับผู้อื่น) การเติบโตที่ยั่งยืนบ่งชี้ถึงการใช้หน่วยความจำเสมือนของตัวเองจริง
  • กระบวนการ \ จำนวนการจัดการ: จำนวนตัวจัดการที่เปิดอยู่ การเพิ่มขึ้นอย่างต่อเนื่องมักบ่งชี้ถึงการรั่วไหลของทรัพยากร (เซสชัน วัตถุระบบ)
  • กระบวนการ \ จำนวนเธรด:จำนวนเธรดที่ใช้งานอยู่ในกระบวนการ การเพิ่มขึ้นของจำนวนเธรดที่ไม่คาดคิดอาจบ่งชี้ถึงปัญหาการทำงานพร้อมกันหรือเธรดที่ยังไม่เสร็จสมบูรณ์
  • หน่วยความจำ .NET CLR \ # ไบต์ในฮีปทั้งหมด:หน่วยความจำทั้งหมดสำหรับวัตถุ .NET หากหน่วยความจำเพิ่มขึ้นโดยไม่เสถียร ให้ตรวจสอบแรงกดดันของ GC และการอ้างอิงที่ยังไม่ได้เผยแพร่
  • ขนาดฮีปหน่วยความจำ .NET CLR \ Gen 2:ขนาดฮีป Gen 2 (ไอเทมอายุยืน) การเติบโตอย่างต่อเนื่องบ่งชี้ถึงไอเทมอายุยืนที่ไม่ได้รับการสะสม

ตีความกราฟด้วยสายตาที่วิพากษ์วิจารณ์หากคุณสังเกตเห็นว่า Private Bytes เพิ่มขึ้นอย่างต่อเนื่อง ในขณะที่จำนวนไบต์ใน Heaps ทั้งหมดและขนาด Heap Gen 2 ยังคงที่ แสดงว่าการเติบโตไม่ได้เกิดขึ้นใน Heap .NET แต่เกิดขึ้นในหน่วยความจำ/สำรองของกระบวนการ รูปแบบนี้มักบ่งชี้ถึงการรั่วไหลภายนอก GC (เช่น บัฟเฟอร์หรือตัวจัดการที่ไม่ได้ถูกแช่แข็ง)

การตั้งค่ามาตราส่วนและช่วงเวลาใน PerfMon

ปรับกราฟ: มาตราส่วน, ช่วง และระยะเวลา

PerfMon อนุญาต ปรับการมองเห็นของเคาน์เตอร์แต่ละตัวและช่วงเวลาประวัติที่คุณเห็น. กด Ctrl + Shift + A หากต้องการเลือกเคาน์เตอร์ทั้งหมดในรายการด้านล่าง ให้คลิกขวาและเลือก ปรับขนาดเคาน์เตอร์ที่เลือกเพื่อให้มองเห็นได้ทั้งหมดโดยที่ส่วนอื่น ๆ ไม่ถูก “ทำให้แบน”

เปิด คุณสมบัติของแผนภูมิ คลิกขวา > Properties… และตั้งค่าอัตราการสุ่มตัวอย่างบนแท็บ General ตัวอย่างเช่น สุ่มตัวอย่างทุก 10 วินาที และตั้งค่า Duration เป็น 10000 เพื่อให้ครอบคลุมเวลาประมาณ 2,5 ชั่วโมงในมุมมอง ยิ่งปรากฏการณ์นี้ยาวนานขึ้น อัตราการสุ่มตัวอย่างก็ควรเว้นระยะห่างมากขึ้น เพื่อหลีกเลี่ยงไฟล์ขนาดใหญ่และภาระงานคอมพิวเตอร์มากเกินไป

เคล็ดลับพิเศษ:PerfMon เปิดเผยคุณสมบัติและวิธีการของ ActiveX ช่วยให้คุณสามารถรวมหรือควบคุมจากเครื่องมือพัฒนาอื่นๆ และฝังไว้เป็นตัวควบคุมในแอปพลิเคชันของคุณเองได้หากจำเป็น

สร้างอัตโนมัติด้วย Logman: สร้าง เริ่ม และหยุด

 

Logman.exe เป็นยูทิลิตี้บรรทัดคำสั่งสำหรับการสร้างและจัดการชุดตัวนับเปิดพรอมต์คำสั่งด้วยสิทธิ์ผู้ดูแลระบบและรันคำสั่งที่คล้ายกับต่อไปนี้เพื่อสร้างชุดการตรวจสอบต่อเนื่องขนาดใหญ่ที่มีไฟล์แบบวงกลม:

เนื้อหาพิเศษ - คลิกที่นี่  Microsoft ขยายตัวเลือกการซ่อมแซม Xbox ด้วยซัพพลายเออร์ใหม่และชิ้นส่วนอะไหล่

Logman.exe create counter Avamar -o "c:\\perflogs\\Emc-avamar.blg" -f bincirc -v mmddhhmm -max 250 -c "\\LogicalDisk(*)\\*" "\\Memory\\*" "\\Network Interface(*)\\*" "\\Paging File(*)\\*" "\\PhysicalDisk(*)\\*" "\\Processor(*)\\*" "\\Process(*)\\*" "\\Redirector\\*" "\\Server\\*" "\\System\\*" -si 00:00:05

ไปยัง เริ่มและหยุดการจับภาพ, สหรัฐอเมริกา:

Logman.exe start Avamar
Logman.exe stop Avamar

เคล็ดลับคำสั่ง: -f bincirc สร้างล็อกไบนารีแบบวงกลม (-max จำกัดขนาดเป็น MB) -si กำหนดช่วงเวลาการสุ่มตัวอย่าง และ -c เพิ่มตัวนับจำนวนมากสำหรับอ็อบเจ็กต์และอินสแตนซ์ของอ็อบเจ็กต์เหล่านั้น ใช้พาธที่มีเครื่องหมายอัญประกาศและเครื่องหมายแบ็กสแลชแบบ escape เมื่อเขียนสคริปต์หรือส่งออกคอนฟิกูเรชัน

ควรใช้ Logman เมื่อใด? เหมาะสำหรับ รวบรวมข้อมูลระยะไกล บนเซิร์ฟเวอร์ การวินิจฉัยอัตโนมัติ หรือกำหนดมาตรฐานการจับภาพบนหลายเครื่อง คุณสามารถกำหนดเวลาด้วย Task Scheduler และหมุนเวียนไฟล์ได้โดยไม่ต้องมีการแทรกแซง

เกณฑ์ตัวนับประสิทธิภาพ

ตัวนับและเกณฑ์ที่มีประโยชน์ต่อระบบย่อย

หน่วยความจำ:ตรวจสอบความจุจริง แรงดันเพจจิ้ง และปริมาณการใช้พูลของระบบ ตัวนับและแนวทางเหล่านี้ช่วยแยกอาการออกจากสาเหตุ:

  • หน่วยความจำ \ % ไบต์ที่มุ่งมั่นในการใช้งาน: เปอร์เซ็นต์ของหน่วยความจำที่คอมมิตเกินขีดจำกัดการคอมมิต หากเกิน 80% อย่างต่อเนื่อง ให้ตรวจสอบขนาดไฟล์เพจจิ้งและการใช้งานจริง
  • หน่วยความจำ \ เมกะไบต์ที่พร้อมใช้งาน: ปล่อยหน่วยความจำกายภาพให้ว่าง ตรวจสอบว่า RAM < 5% ลดลงซ้ำๆ หรือไม่ (และ < 1% ถือเป็นปัญหาสำคัญ)
  • หน่วยความจำ \ ไบต์ที่มุ่งมั่น: จำนวนไบต์ที่คอมมิตทั้งหมด ไม่ควรเปลี่ยนแปลงอย่างรวดเร็ว การเปลี่ยนแปลงบ่อยครั้งอาจส่งผลให้ไฟล์เพจขยายตัว
  • หน่วยความจำ \ พูล ไบต์แบบไม่แบ่งหน้า: พูลที่ไม่แบ่งเพจ (อ็อบเจ็กต์ที่ไม่สามารถล้างลงดิสก์ได้) ความอิ่มตัวที่คงอยู่ (> 80%) เกี่ยวข้องกับเหตุการณ์ต่างๆ เช่น ปี 2019 (สระว่ายน้ำที่ไม่มีการแบ่งหน้าหมด)
  • หน่วยความจำ \ ไบต์เพจพูล: : พูลเพจ ค่าที่คงอยู่ > 70% ของค่าสูงสุดบ่งชี้ความเสี่ยงที่จะเกิดเหตุการณ์ในปี 2020 (พูลเพจหมด)

หน่วยประมวลผลกลาง:มองหาโหลดที่ต่อเนื่องและสัญญาณ I/O หนักหรือไดรเวอร์ที่มีสัญญาณรบกวน

  • ข้อมูลโปรเซสเซอร์ \ % เวลาของโปรเซสเซอร์ (ทุกกรณี): >90% คงที่บน CPU 1 ตัวหรือ >80% บนมัลติโปรเซสเซอร์ แสดงให้เห็นถึงการโอเวอร์โหลดของ CPU
  • โปรเซสเซอร์ \ % เวลาที่ได้รับสิทธิพิเศษ: เวลาโหมดเคอร์เนล หากเกิน 30% อย่างต่อเนื่องบนเซิร์ฟเวอร์แอป/เว็บ อาจบ่งชี้ว่าไดรเวอร์หรือระบบมีภาระงานมากเกินไป
  • โปรเซสเซอร์ \ % เวลาขัดจังหวะ y % เวลา DPC: > 25% ชี้ไปที่กิจกรรมอุปกรณ์ที่เข้มข้น (NIC, ดิสก์ ฯลฯ)
  • ระบบ \ การสลับบริบท/วินาที y โปรเซสเซอร์ \ การขัดจังหวะ/วินาที: มีประโยชน์สำหรับการดูแรงกดดันในการสลับบริบทและการขัดจังหวะกิจกรรม

สีแดง:ชี้ให้เห็นถึงสุขภาพ NIC และคุณภาพการสื่อสาร

  • อินเทอร์เฟซเครือข่าย\แพ็กเก็ตที่ได้รับถูกทิ้ง: ควรอยู่ใกล้ศูนย์ ค่าที่เพิ่มขึ้นมักบ่งชี้ว่าบัฟเฟอร์/ฮาร์ดแวร์ไม่เพียงพอ
  • อินเทอร์เฟซเครือข่าย\แพ็กเก็ตที่ได้รับข้อผิดพลาด: : ข้อผิดพลาด > 2 อย่างต่อเนื่อง จำเป็นต้องตรวจสอบลิงก์/สายเคเบิล/ไดรเวอร์

ดิสโก้:วัดความอิ่มตัว ความหน่วง และความจุ

  • PhysicalDisk \ % เวลาว่าง: เปอร์เซ็นต์ของเวลาที่ไม่ได้ใช้งาน ค่าต่ำอย่างต่อเนื่องบ่งชี้ว่าดิสก์กำลังใช้งานอยู่ ซึ่งสะท้อนถึงความจุที่เหลืออยู่ได้อย่างดี
  • PhysicalDisk \ ค่าเฉลี่ยวินาทีของดิสก์/การอ่าน y ค่าเฉลี่ยวินาทีดิสก์/การเขียน: ความหน่วงเฉลี่ย การอ้างอิงทั่วไป (แนวทาง): การอ่านดีเยี่ยม < 8 มิลลิวินาที, ยอมรับได้ < 12 มิลลิวินาที, พอใช้ < 20 มิลลิวินาที, แย่ > 20 มิลลิวินาที; การเขียนดีเยี่ยม < 1 มิลลิวินาที, ดี < 2 มิลลิวินาที, พอใช้ < 4 มิลลิวินาที, แย่ > 4 มิลลิวินาที
  • PhysicalDisk \ ความยาวคิวดิสก์เฉลี่ย: หางเฉลี่ย ค่าที่ต่ำกว่า 2× มักจะถือว่าสมเหตุสมผล
  • PhysicalDisk \ แยก IO/วินาที: I/O แตกออกเนื่องจากการกระจายตัวหรือขนาดบล็อกที่ไม่เพียงพอ ยิ่งต่ำยิ่งดี
  • LogicalDisk \ % พื้นที่ว่าง: ควรเว้นพื้นที่ว่างไว้ > 15% เสมอ (แนะนำให้ ≥ 25%) บนวอลุ่มลอจิกของระบบ
เนื้อหาพิเศษ - คลิกที่นี่  AirPods Pro คืออะไร

วัตถุดิสก์: ทางกายภาพเทียบกับเชิงตรรกะ.

  • ฟิสิคัลดิสก์ เพิ่มการเข้าถึงพาร์ติชันทั้งหมดของอุปกรณ์ทางกายภาพ (ระบุฮาร์ดแวร์)
  • ลอจิคัลดิสก์ วัดพาร์ติชันหรือจุดเชื่อมต่อเฉพาะเจาะจง ด้วยดิสก์แบบไดนามิก วอลุ่มลอจิคัลสามารถครอบคลุมดิสก์ทางกายภาพได้หลายตัว และตัวนับจะแสดงผลรวมทั้งหมด

กระบวนการ: เพื่อเชื่อมโยงทรัพยากรกับพฤติกรรมของแอปเฉพาะ ตรวจสอบ กระบวนการ \ % เวลาประมวลผล, ไบต์ส่วนตัว, ไบต์เสมือน y ชุดทำงาน. จำนวนที่จับ เป็นสิ่งสำคัญหากคุณสงสัยว่าสระว่ายน้ำรั่ว การเจริญเติบโตของ จับ มักแต่งงานด้วยการเพิ่มขึ้นผิดปกติใน พูลแบบไม่มีเพจ/มีเพจ.

การตรวจสอบความน่าเชื่อถือ: ตรวจสอบความล้มเหลวและความเข้ากันได้

Windows Reliability Monitor สรุปความเสถียรและเหตุการณ์ตามวันหรือสัปดาห์, การจำแนกประเภท วิกฤต คำเตือน และข้อมูลจากแต่ละคอลัมน์ คุณสามารถเปิด "ดูรายละเอียดทางเทคนิค" เพื่อตรวจสอบโมดูล รหัส และลายเซ็นดิจิทัลของไฟล์ไบนารีที่เกี่ยวข้อง

  • ตัวอย่างการปฏิบัติคุณจะพบรายการเช่น svchost.exe_MapsBroker หรือแอปพลิเคชันอื่นๆ ที่ขัดข้อง บางครั้งโมดูลที่รายงาน (เช่น Kernelbase.dll) อาจเป็นของเคอร์เนล Windows และได้รับการรับรองโดย Microsoft ซึ่งบ่งชี้ว่าสาเหตุหลักไม่ได้เกิดจากเคอร์เนล แต่เป็นแอปพลิเคชันหรือปลั๊กอินที่ทำงานอยู่ในพื้นที่ผู้ใช้ของคุณ
  • จะทำอย่างไรเมื่อแอปเก่าล้มเหลวเรียกใช้ตัวแก้ไขปัญหาความเข้ากันได้และลองบังคับโหมดความเข้ากันได้ (เช่น Windows 7) และปิดใช้งานการปรับขนาด DPI สูง หากคุณพบปัญหาอินเทอร์เฟซหรือประสิทธิภาพ การตั้งค่านี้ได้รับการพิสูจน์แล้วว่าสามารถแก้ไขปัญหาข้อขัดข้องในซอฟต์แวร์รุ่นเก่าได้
  • เชื่อมโยงการค้นพบความเสถียรกับ PerfMonรวมประวัติการขัดข้องเข้ากับบันทึกการนับจำนวน เพื่อดูว่าค่า Private Bytes, Handle Count หรือค่าความหน่วงของดิสก์สูงก่อนเกิดการขัดข้องหรือไม่ ความสัมพันธ์นี้ช่วยให้คุณมีเธรดสำหรับดึงข้อมูล
  • การปิดในทางปฏิบัติ:ด้วย PerfMon และ Reliability Monitor คุณสามารถวินิจฉัยได้ตั้งแต่อาการ (การหยุดทำงาน การทำงานช้า) ไปจนถึงสาเหตุ (การรั่วไหลของหน่วยความจำ คอขวดของดิสก์ CPU 100% ข้อผิดพลาดของเครือข่าย) โดยได้รับการสนับสนุนจากตัวนับและเกณฑ์ที่ช่วยแนะนำคุณอย่างชัดเจน

หากคุณต้องการ คู่มือฉบับย่อสำหรับการเริ่มต้น:เปิด PerfMon เพิ่มตัวนับสำหรับกระบวนการเป้าหมาย (ไบต์ส่วนตัว, เวลาของโปรเซสเซอร์ % ฯลฯ) ปรับการสุ่มตัวอย่างและระยะเวลาเพื่อครอบคลุมหน้าต่างที่ปัญหาเกิดขึ้น บันทึกลงในไฟล์ด้วยชุดตัวรวบรวม และหากสามารถใช้ได้ ให้ตั้งค่าอัตโนมัติด้วย Logman บนเซิร์ฟเวอร์หรือสภาพแวดล้อมการทดสอบที่ต้องทำงานเป็นเวลาหลายชั่วโมง