Cách tìm tiến trình nào gây ra việc sử dụng CPU cao


30

Có cách nào để tìm hiểu từ thiết bị đầu cuối quá trình nào gây ra việc sử dụng CPU cao không?

Nó cũng sẽ hữu ích khi sắp xếp các quy trình theo thứ tự giảm dần của việc sử dụng cpu

Câu trả lời:


23

topsẽ hiển thị những gì đang sử dụng CPU của bạn. Nếu bạn đã cài đặt nó, htopcho phép bạn kiểm soát chi tiết hơn, bao gồm cả lọc bằng cách sử dụng CPU trong trường hợp CPU CPU của bạn


4
Top thường ít hơn hữu ích. Đầu tiên bởi vì các quy trình thường dao động - không có gì lạ khi thấy quá trình chiếm hoàn toàn cpu đôi khi nhấp nháy lên 0% và nếu bạn có nhiều quy trình chuyên sâu đang chạy, chúng có thể thay thế, thay phiên nhau sử dụng 100% trong khi các quy trình khác sử dụng 0% , làm cho nó khó đọc. Ngoài ra, đôi khi các con số chỉ là lạ - ví dụ như hiện tại, đầu trang của tôi đang báo cáo rằng tất cả các quy trình riêng lẻ đang sử dụng 0% cpu, nhưng tổng số là 52% - vậy cái nào đang thực hiện?
Benubird

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

Hoạt động với tôi, hiển thị 10 cpu hàng đầu bằng cách sử dụng các chuỗi, được sắp xếp theo số


1
Đảo ngược từ vựng, 8% sẽ sắp xếp trên 78%
cherdt

3
Tôi muốn giới thiệu thêm một -n để sắp xếp. Nó sắp xếp các giá trị bằng số thay vì từ vựng. ( ss64.com/bash/sort.html )
Simon Zyx

4

Ngoài pstopcác lệnh, bạn cũng có thể chạy vmstatđể tìm hiểu những gì đang xảy ra về CPU, sử dụng bộ nhớ trên hệ thống, tức là:

vmstat 1 100

Với cách trên, bạn nhận được 100 mẫu cách nhau một giây so với các số liệu thống kê khác nhau. Khi cột rhoặc bcó một số (cao hơn = sử dụng nhiều tài nguyên hơn), có một tập lệnh đang chặn. rlà CPU, bnói chung là chặn IO như đĩa hoặc mạng.

Ví dụ đầu ra:

$ 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

Bạn có thể sử dụng ps xo pid,cmd --sort=%cmd | tail -1, nhưng topsẽ hiển thị trong thời gian thực.


2

" Htop " tương tự như trên, nhưng có màn hình "đồ họa dựa trên văn bản đầy màu sắc" của CPU của bạn và cũng hiển thị cấu trúc cây cho các quy trình, vì vậy bạn biết một quy trình có con và bao nhiêu.

Nó cũng hiển thị năng lượng pin của máy tính xách tay và liệu nó có sạc được không - tôi không biết điều đó trước đây!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.