ค้นหากระบวนการที่ทำให้เกิดการใช้ดิสก์สูงบน windows

/th/images/high-100-disk-usage-in-windows.png

ใน Windows กระบวนการทำงานบางอย่างสามารถสร้างดิสก์ I/O หนักซึ่งอาจส่งผลกระทบต่อประสิทธิภาพของแอพอื่น ๆ บทความนี้สำรวจเครื่องมือ Windows พื้นฐานที่สามารถช่วยคุณระบุกระบวนการที่กำลังโหลดระบบย่อยดิสก์อย่างหนัก

วิธีที่ง่ายที่สุดในการดูโหลดดิสก์ปัจจุบันคือผ่านตัวจัดการงาน กด ctrl + shift + esc ไปที่แท็บประสิทธิภาพและเลือกหนึ่งในดิสก์ทางกายภาพ ภาพหน้าจอแสดงตัวอย่างของสถานการณ์ที่หนึ่งในดิสก์ถูกโหลดที่ 100%

/th/images/high-100-disk-usage-in-windows.png

บนแท็บกระบวนการคุณสามารถค้นหาว่ากระบวนการใดที่ทำให้เกิดการใช้ดิสก์สูง ตัวจัดการงานใหม่ใน Windows 10 และ 11 รวมแท็บกระบวนการพร้อมคอลัมน์ใหม่สำหรับโหลดดิสก์นอกเหนือจากคอลัมน์มาตรฐานสำหรับการใช้ RAM และ CPU เรียงลำดับกระบวนการตามคอลัมน์ดิสก์ ที่ด้านบนคุณจะเห็นชื่อของโปรแกรมที่ใช้ทรัพยากรดิสก์มากที่สุด

/th/images/task-manager-disk-usage.png

หากต้องการรับข้อมูลรายละเอียดเพิ่มเติมคลิกขวาที่กระบวนการและเลือกไปที่รายละเอียด

เพื่อความสะดวกให้เพิ่มคอลัมน์เพิ่มเติมลงในตัวจัดการงาน คลิกขวาที่ส่วนหัวของตารางกระบวนการเลือก“ เลือกคอลัมน์” จากนั้นเพิ่มสิ่งต่อไปนี้:

  • i/o อ่านไบต์

  • i/o เขียนไบต์

  • บรรทัดคำสั่ง

สิ่งนี้จะช่วยให้คุณเข้าใจโปรไฟล์การใช้ดิสก์ (ไม่ว่ากระบวนการจะดำเนินการอ่านหรือเขียนเป็นหลัก) และดูบรรทัดคำสั่งที่ใช้ในการเปิดโปรแกรม ในกรณีนี้เป็นที่ชัดเจนว่าสคริปต์ PowerShell ที่กำลังทำงานทำให้โหลดสูงบนดิสก์ ( *.ps1)

/th/images/show-i-o-read-and-write-for-processes-in-task-mana.png

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

/th/images/open-resource-monitor.png

ไปที่แท็บดิสก์ เรียงลำดับกระบวนการตามกิจกรรม I/O และเลือกกระบวนการที่ทำให้เกิดการโหลดดิสก์สูงโดยเปิดใช้งานช่องทำเครื่องหมายถัดไป

รายการไฟล์ที่ผ่านการกรองโดยกระบวนการนี้จะแสดงในส่วนกิจกรรมของดิสก์ ค้นหาไฟล์ที่มีการเขียนและ/หรืออ่านมากที่สุด นี่คือไฟล์ที่คุณกำลังมองหา

/th/images/view-processes-caused-high-disk-usage-in-resmon.png

เครื่องมือ Process Explorer ของ Microsoft ยังสามารถใช้เพื่อระบุว่ากระบวนการและเธรดใดที่วางโหลดสูงบนดิสก์ Process Explorer ให้ข้อมูลโดยละเอียดเกี่ยวกับการโหลดดิสก์ สิ่งนี้ช่วยให้คุณสามารถระบุกระบวนการและเธรดเฉพาะที่รับผิดชอบกิจกรรมดิสก์แบบเข้มข้นและตรวจสอบไฟล์และทรัพยากรที่ใช้ สิ่งนี้ช่วยให้คุณสามารถระบุกระบวนการและเธรดเฉพาะที่รับผิดชอบกิจกรรมดิสก์แบบเข้มข้นรวมถึงไฟล์และทรัพยากรที่ใช้

โดยค่าเริ่มต้น Process Explorer ไม่แสดงข้อมูลเกี่ยวกับการดำเนินการอ่านและเขียน ในการเพิ่มคอลัมน์ I/O อ่านคอลัมน์ I/O เขียนคอลัมน์ Bytes ให้ไปที่แท็บ Process IO และเลือกคอลัมน์ View-> เลือกคอลัมน์

/th/images/show-process-read-and-write-io-in-proc-explorer.png

เรียงลำดับกระบวนการโดย I/O เพื่อค้นหาสิ่งที่ทำให้เกิดการโหลดดิสก์สูง ในแท็บเธรดคุณยังสามารถค้นหาเธรดกระบวนการเฉพาะที่ทำให้เกิด I/O อย่างเข้มข้น

/th/images/process-explorer-view-disk-io.png

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

ภาพหน้าจอด้านล่างแสดงตัวอย่างของกระบวนการระบบโดยใช้ไฟล์ VMDK บริบททำให้ชัดเจนว่านี่เป็นไฟล์เครื่องเสมือน VMware Workstation แต่ไม่ชัดเจนจากชื่อของกระบวนการ

/th/images/resource-monitor-view-highly-used-files-.png

ในตัวอย่างนี้มันเป็นกระบวนการระบบที่มี PID 4 นี่คือกระบวนการระบบโหมดเคอร์เนลมาตรฐาน (ไดรเวอร์อุปกรณ์ยังทำงานในกระบวนการนี้) ยูทิลิตี้ Process Monitor (procmon) ดีกว่าสำหรับการสำรวจการใช้ดิสก์โดยกระบวนการของระบบเนื่องจากแสดงกิจกรรมของดิสก์ I/O รวมถึงกระบวนการระดับเคอร์เนล

Procmon สามารถแสดงข้อมูลเกี่ยวกับกิจกรรมการใช้งานไฟล์ เลือกเครื่องมือ-> สรุปไฟล์ เลือกไฟล์ที่ใช้แล้วสูงและดับเบิลคลิก สิ่งนี้จะเพิ่มเส้นทางไฟล์ไปยังตัวกรอง Procmon ในกรณีของฉันฉันพบว่าโหลดดิสก์สูงเกิดจากกระบวนการ VMware-vmx.exe (กระบวนการเวิร์กสเตชัน VMware หลักมีหน้าที่รับผิดชอบในการใช้งานเครื่องเสมือนจริง)

/th/images/view-used-files-of-system-process-with-process-mon.png

ข้อมูลเกี่ยวกับกิจกรรมดิสก์ของกระบวนการสามารถรับได้จากเคาน์เตอร์ประสิทธิภาพ คำสั่ง PowerShell ต่อไปนี้แสดงกระบวนการ 10 อันดับแรกโดยกิจกรรมดิสก์แบบเรียลไทม์ตามที่รายงานโดยเคาน์เตอร์ประสิทธิภาพ:

get-counter '\ process (*) \ io data bytes/sec' | Select-Object-ExpandProperty Countersamples | การเรียงลำดับวัตถุประสงค์การปรุงอาหาร select-object instancename, cookedValue-first 10

/th/images/powershell-query-performance-counters-by-disk-usa.png

กระบวนการ 10 อันดับแรกที่มีกิจกรรม I/O ดิสก์สูงจะปรากฏขึ้น ใช้เครื่องมือจับ CLI จาก sysinternals เพื่อดูว่าไฟล์ใดที่ใช้กระบวนการเฉพาะ:

handle.exe-p

คำสั่งนี้แสดงตัวบ่งชี้ไฟล์ที่เปิดทั้งหมดของกระบวนการที่ระบุ (ระบุโดย PID)

/th/images/handle-exe-view-open-files-by-pid.png

นี่คือตัวอย่างของการใช้เครื่องมือจับเพื่อปล่อยไฟล์ที่ล็อคไว้บน Windows

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

*ลิงค์แหล่งที่มา:

ปล่อยไฟล์ที่ล็อคไว้บน Windows