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


30

มีวิธีใดบ้างที่จะทราบได้จากเทอร์มินัลว่ากระบวนการใดทำให้เกิดการใช้งาน CPU สูง?

มันจะมีประโยชน์ในการจัดลำดับกระบวนการตามลำดับของการใช้ cpu

คำตอบ:


23

topจะแสดงสิ่งที่ใช้ CPU ของคุณ หากคุณติดตั้งไว้htopจะช่วยให้คุณควบคุมได้ละเอียดยิ่งขึ้นรวมถึงการกรองโดย - ในกรณีของคุณ - CPU


4
ด้านบนมักจะมีประโยชน์น้อยกว่า ครั้งแรกเพราะกระบวนการมักจะผันผวน - ไม่ใช่เรื่องผิดปกติที่จะเห็นกระบวนการที่ครอบครองซีพียูอย่างสมบูรณ์เป็นครั้งคราวสั่นไหวเป็น 0% ด้านบนและถ้าคุณมีกระบวนการที่เข้มข้นหลายอย่างที่ทำงานอยู่พวกเขาสามารถสลับกันได้ ทำให้อ่านยาก นอกจากนี้บางครั้งตัวเลขก็แปลก - เช่นกันตอนนี้ท็อปของฉันกำลังรายงานว่ากระบวนการแต่ละอันใช้ 0% cpu แต่ทั้งหมดคือ 52% - อันไหนที่ทำ?
Benubird

29
ps -eo pcpu,pid,user,args | sort -k1 -r -n | head -10

ใช้งานได้ดีสำหรับฉันแสดง 10 cpu ที่ดีที่สุดโดยใช้เธรดเรียงตามตัวเลข


1
Reverse lexicographically 8% จะเรียงลำดับสูงกว่า 78%
cherdt

3
ฉันอยากจะแนะนำให้เพิ่ม -n เพื่อจัดเรียง มันเรียงลำดับค่าตัวเลขแทนที่จะเป็นศัพท์ ( ss64.com/bash/sort.html )
Simon Zyx

4

นอกจากpsและtopคำสั่งแล้วคุณยังสามารถเรียกใช้vmstatสิ่งที่เกิดขึ้นในแง่ของ CPU การใช้หน่วยความจำในระบบเช่น:

vmstat 1 100

จากตัวอย่างข้างต้นคุณจะได้รับ 100 ตัวอย่างต่อวินาทีจากสถิติต่างๆ เมื่อคอลัมน์rหรือbคอลัมน์มีตัวเลข (ใช้ทรัพยากรมากกว่า = มากขึ้น) จะมีสคริปต์ที่บล็อกอยู่ rเป็น CPU bโดยทั่วไปการปิดกั้น IO เช่นดิสก์หรือเครือข่าย

ตัวอย่างผลลัพธ์:

$ vmstat 1 100
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 288700  17592 1920048    0    0  4482  3297   47  155  8  2 78 12  0
 0  0      0 268420  17904 1920584    0    0   788    36 4095 4759 11  3 85  1  0
 0  0      0 269916  17940 1920868    0    0   108   560 6969 7280 11  2 86  1  1
 3  0      0 267684  18196 1921304    0    0   256     0 5934 6094  9  2 90  0  0
 0  0      0 257800  18196 1921528    0    0     0     0 5412 5508 10  1 89  0  1
 1  0      0 257368  18196 1922028    0    0     0     0 5852 6046  9  1 89  0  1
 0  0      0 256872  18200 1922236    0    0     0     0 5345 5566  9  1 90  0  0
 0  0      0 256688  18208 1922292    0    0     0  1788 5388 5602  7  2 90  1  1
 0  0      0 256520  18208 1922684    0    0     0     0 5387 5557  8  1 91  0  0
 1  0      0 255788  18208 1923024    0    0     0     0 4992 5363 10  1 89  0  1
 1  0      0 255392  18208 1923456    0    0     0     0 5027 5145 13  1 86  0  0
 0  0      0 254980  18208 1923792    0    0     0     0 5042 5082 21  1 77  0  1
 0  0      0 254452  18216 1924092    0    0     0  1848 5481 5695  7  1 91  1  1
 0  0      0 254416  18216 1924268    0    0     0     0 4947 5250  7  1 92  0  0
 1  0      0 253732  18216 1924616    0    0     0     0 5180 5383  8  2 90  0  1
 0  0      0 253584  18216 1924912    0    0    12     0 4464 4623  8  1 91  0  0
 0  0      0 243496  18216 1925224    0    0     0     0 5507 5700  9  1 90  0  1
 0  0      0 243008  18224 1925504    0    0     0  1356 5070 5345  8  1 90  0  1
 1  0      0 243220  18228 1925676    0    0     0     0 6241 6533 11  2 87  0  0

2

คุณสามารถใช้งานps xo pid,cmd --sort=%cmd | tail -1ได้ แต่topจะแสดงตามเวลาจริง


2

" htop " นั้นคล้ายกับด้านบน แต่มีจอแสดงผลแบบ "ข้อความสีสันสดใส" ของซีพียูของคุณและยังแสดงโครงสร้างแบบต้นไม้สำหรับกระบวนการดังนั้นคุณจึงรู้ว่ากระบวนการมีลูกและมีจำนวนเท่าใด

นอกจากนี้ยังแสดงพลังงานแบตเตอรี่แล็ปท็อปและไม่ว่าจะชาร์จ - ฉันไม่เคยรู้มาก่อน!

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