ฉันจะติดตามการใช้งาน CPU สำหรับบริการหน้าต่างได้อย่างไร


27

ฉันใช้ตัวจัดการงาน windows เพื่อติดตามการใช้งาน CPU ฉันสังเกตเห็นว่าแอปพลิเคชันของฉันอยู่ในรายการ แต่บริการของ Windows ไม่

ตัวอย่างเช่นการใช้งาน CPU ทั้งหมดจะแสดงรายการอยู่ที่ 70% แต่ข้อมูลสรุปของแอปพลิเคชันที่แสดงมีเพียงประมาณ 30% ฉันถือว่าความแตกต่างมาจากบริการที่ไม่อยู่ในรายการแท็บกระบวนการในตัวจัดการงานของ Windows


คำตอบ:


25

ต่อไปนี้เป็นวิธีรับรายละเอียดเกี่ยวกับบริการโดยไม่มีเครื่องมือภายนอกใน Windows 7 และ 8:

เปิดการตรวจสอบทรัพยากร:

  • เปิดตัวจัดการงานและคลิกที่แท็บประสิทธิภาพ
  • คลิกที่ "Open Resource Monitor" ที่ด้านล่าง

แสดงรายละเอียดบริการ:

  • คลิกที่แท็บ "CPU"
  • ในส่วน "กระบวนการ" ค้นหากระบวนการที่คุณต้องการ คุณสามารถจัดเรียงตาม CPU ได้โดยคลิกที่ส่วนหัวของคอลัมน์ "CPU"
    • ทำเครื่องหมายที่ช่องถัดจากมัน
  • ขยายส่วน "บริการ" ด้านล่าง; คุณจะเห็นว่าบริการเฉพาะกำลังใช้ CPU อยู่

ป้อนคำอธิบายรูปภาพที่นี่

ฉันต้องคิดออกเพราะ svchost ใช้ทรัพยากรจำนวนมากและนี่เป็นวิธีเดียวที่ฉันจะเห็นว่า upnphost เป็นผู้กระทำผิด


นอกจากนี้ยังมีส่วน“ บริการ” ที่คุณสามารถขยายได้ภายใต้“ กระบวนการ” ทั้งสองวิธีขอบคุณ!
Nicholas Riley

นั่นคือสิ่งที่ฉันพูดถึงดีใจที่คุณพบมัน :-) โดยเลือกกระบวนการภายใต้ "กระบวนการ" (เช่น svchost เฉพาะในกรณีของฉัน) คุณสามารถดูบริการในมุมมอง "บริการ" ที่เกี่ยวข้องกับสิ่งนั้น กระบวนการ.
dominik andreas

ในที่สุดฉันจะสามารถติดตามบริการลึกลับที่ใช้ 1 CPU ที่ 100% บน windows 7 เฉพาะเมื่อหน้าจอของฉันปิดหลังจากไม่ได้ใช้งาน 15 นาที ทันทีที่ฉันปลุกบริการก็จะเปิดตัวซีพียูที่ใช้อยู่ ฉันเห็นพอที่จะเห็นว่าเป็น "svchost" ... ตอนนี้ด้วยค่าเฉลี่ย 60 วินาทีฉันจะมีเวลาดู บอทเน็ตเจ้ากรรม!
MrBrody

7

อาจเป็นเครื่องมือที่ดีที่สุดคือ Process Explorer จาก Sysinternals คุณจะได้รับเครื่องมือและหลายอย่างที่คนอื่น ๆที่นี่

แก้ไข:หากต้องการดูว่าบริการใดกำลังทำงานอยู่ใน svchost แทนที่จะเป็นกระบวนการแยกต่างหากคุณจะต้องเพิ่มคอลัมน์ "บรรทัดคำสั่ง" ในหน้าต่างด้านขวา น่าเสียดายที่นี่จะไม่แสดงบริการที่รวมเข้าด้วยกัน หากต้องการดูข้อมูลดังกล่าวใน Process Explorer คุณต้องวางเมาส์เหนืออินสแตนซ์เฉพาะของ svchost ที่เป็นปัญหา ข้อมูลจะปรากฏในป๊อปอัพ


นอกจากนี้คุณยังสามารถเลือกที่จะมี procmon แทนที่ taskman Procmon ทำสิ่งนี้โดยการลงทะเบียนตัวเองในฐานะดีบักเกอร์สำหรับ taskman และเพียงแค่เรียกใช้ตัวเองแทน taskman เมื่อมีบางสิ่งที่ต้องการเริ่ม taskman
Brian Reiter

อ๊ะ ไม่ใช่ procmon ฉันหมายถึง procexp (Procmon เป็นอีกเครื่องมือหนึ่งจาก sysinternals ที่ช่วยให้คุณดูรีจิสทรีระบบไฟล์และหน้าต่างเข้าถึง API สำหรับกระบวนการ.)
ไบรอันไรเตอร์

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

ใน ProcessExplorer แท็บ [บริการ] และ [TCP / IP] ให้ข้อมูลที่มีค่าแก่ฉันเกี่ยวกับการระบุบริการที่เฉพาะเจาะจง นอกจากนี้ยังมีวิธีการระบุบริการอีกวิธีผ่านการคลิกเมาส์ขวาในตัวจัดการงานมาตรฐานฉันกำลังโพสต์ด้านล่างเป็นคำตอบแยกต่างหาก
Alex Fortuna

1

ลองใช้ตัวจัดการงานเสริม Extensoft ฟรี

http://www.extensoft.com/?p=downloads

ไปที่ศูนย์บริการแท็บและคลิกขวาที่บริการทำงานแล้วคลิกไปที่กระบวนการ

มันจะนำคุณกลับไปที่แท็บกระบวนการและเน้นว่ากระบวนการกำลังใช้บริการใดอยู่


ฉันติดตั้งตัวจัดการงานแบบขยายฟรี extensoft มันจะเพิ่มแท็บบริการ ฉันคลิกที่บริการและเลือกไปที่กระบวนการ มันสลับไปที่แท็บกระบวนการ แต่ไม่เน้นกระบวนการ นอกจากนี้มีเครื่องมือใดที่แสดงการใช้ CPU ของบริการทั้งหมดในรายการ (คล้ายกับรายการกระบวนการในตัวจัดการงาน) หมายเหตุ: ฉันใช้ Windows Vista Home Premium Edition

ฉันไม่แน่ใจว่าทำไมมันไม่เน้นกระบวนการ ฉันยังมีเครื่อง Vista ติดกับฉันและมันแสดงให้เห็นว่ากระบวนการที่เกี่ยวข้องกับการบริการ
Qwerty

1

บริการจำนวนมากทำงานภายในอินสแตนซ์ของกระบวนการโฮสต์ทั่วไป svchost.exe คุณสามารถใช้ tasklist / svc ที่บรรทัดคำสั่งเพื่อรับการแจงนับบริการที่ทำงานภายในแต่ละอินสแตนซ์ของ svchost.exe พร้อมกับกระบวนการอื่น ๆ

คุณสามารถคลิกขวาที่กระบวนการ svchost.exe ในตัวจัดการงานและเลือก "ไปที่บริการ" และ taskman จะเปลี่ยนไปที่แท็บบริการและเน้นบริการที่เกี่ยวข้อง

ด้วยexplorer กระบวนการ sysinternalsคุณสามารถโฮเวอร์เหนือ servicehost.exe ด้วยเมาส์ของคุณและดูคำแนะนำเครื่องมือของบริการที่โฮสต์อยู่ภายใน

สิ่งเหล่านี้จะไม่บอกคุณว่าเวลา cpu ของกระบวนการบริการโฮสต์นั้นทุ่มเทให้กับบริการสมาชิกใดที่โฮสต์ภายใน


tasklist /svcเป็นสิ่งที่ดีแสดง PID และบริการที่เกี่ยวข้องในรูปแบบสั้น ๆ ขอขอบคุณ!
Alex Fortuna

1

สิ่งนี้ใช้ได้กับฉันใน Task Manager มาตรฐานที่มีใน Windows 7 Ultimate:

  1. เปิดตัวจัดการงาน
  2. คลิกที่แท็บ [กระบวนการ]
  3. คลิกปุ่ม [แสดงกระบวนการจากผู้ใช้ทั้งหมด]
  4. คลิกขวาที่สิ่งsvchost.exeที่ทำให้เกิดปัญหา (หน่วยความจำ CPU ฯลฯ )
  5. ในเมนูแบบเลื่อนลงเลือก [ไปที่บริการ]

ซึ่งจะนำคุณไปสู่แท็บ [บริการ] ด้วยบริการที่เกี่ยวข้องที่เน้นไว้อย่างน้อย 1 รายการ โปรดทราบว่าหนึ่งsvchost.exeสามารถเกี่ยวข้องกับบริการจำนวนมากในแท็บ [บริการ]


0

คุณควรเปิดตัวจัดการงานในฐานะผู้ดูแล คลิกปุ่ม "แสดงกระบวนการจากผู้ใช้ทั้งหมด"

แต่ดังที่ Brian Reiter กล่าวว่าบริการหลายอย่างนั้นโฮสต์ภายในกระบวนการเดียว หากต้องการทราบว่าบริการใดที่ใช้ CPU ของคุณคุณสามารถลองใช้เครื่องมือการเปิดเผยข้อมูลบริการของฉัน ช่วยให้คุณสามารถแยกบริการเป็นกระบวนการเฉพาะ คุณจะสามารถดูว่าบริการใดใช้ทรัพยากร หลังจากการตรวจสอบจะช่วยให้คุณคืนบริการทั้งหมดกลับ

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