it-swarm-vi.com

Hiển thị năm quá trình tiêu thụ CPU hàng đầu với `ps`

Làm thế nào để hiển thị năm quá trình tiêu thụ CPU hàng đầu với ps?

115
PlanasB

Tại sao nên sử dụng ps khi bạn có thể thực hiện dễ dàng với lệnh top?

Nếu bạn phải sử dụng ps, hãy thử điều này:

ps aux | sort -nrk 3,3 | head -n 5

Nếu bạn muốn thứ gì đó thực sự là 'top'esq với các bản cập nhật liên tục, hãy sử dụng đồng hồ

watch "ps aux | sort -nrk 3,3 | head -n 5"
112
Boban P.

Câu trả lời đúng là:

ps --sort=-pcpu | head -n 6

Vì vậy, bạn có thể chỉ định các cột mà không can thiệp vào sắp xếp.

Ví dụ:

ps -Ao user,uid,comm,pid,pcpu,tty --sort=-pcpu | head -n 6

Lưu ý cho MAC OS X: Trong Mac OS X, ps không nhận ra --sort, nhưng cung cấp -r để sắp xếp theo mức sử dụng CPU hiện tại. Do đó, đối với Mac OS X, bạn có thể sử dụng:

ps -Ao user,uid,comm,pid,pcpu,tty -r | head -n 6
94
Facundo Victor

Tùy thuộc vào nhu cầu của bạn, bạn có thể thấy điều này dễ đọc hơn một chút:

ps -eo pcpu,pid,user,args --no-headers| sort -t. -nk1,2 -k4,4 -r |head -n 5

đầu ra mẫu:

 1.3     4 root     [ksoftirqd/0]
 1.1     9 root     [ksoftirqd/1]
 1.0 17606 nobody   /usr/sbin/gmetad
 1.0    13 root     [ksoftirqd/2]
 0.3 17401 nobody   /usr/sbin/gmond

(các trường là% CPU, PID, USER, THÔNG TIN)

28
Ryan Horrisberger

Tôi không nghĩ ps là những gì bạn đang tìm kiếm. Bạn đã xem kết quả đầu ra từ top chưa?

Nếu bạn có GNU-Top, hãy thử sử dụng chế độ hàng loạt của nó để đưa ra danh sách quy trình được sắp xếp theo mức độ sử dụng cpu và sử dụng head/tail để có được 5 dòng trên cùng (8 đầu tiên là các tiêu đề):

top -b -n 1 | head -n 12  | tail -n 5

Đầu BSD dường như hoạt động khác đi và không có chế độ không tương tác, vì vậy hãy sử dụng một trong các giải pháp dựa trên ps khác.

24
Caleb

Nhanh nhất một lớp lót tôi đã tìm thấy cho điều này (lưu ý 6 vì tiêu đề cộng lại):

ps aux k-pcpu | head -6
6
Nestor Urquiza

Lưu ý rằng các phiên bản hiện tại của ps có khả năng sắp xếp bên trong chúng, dựa trên mã trường (được đưa ra trong trang ps man). Mã trường để sử dụng bộ xử lý là "c". Bạn có thể dùng --sort c ở cuối lệnh ps, ví dụ: ps aux --sort c

Điều này sẽ đặt quá trình sử dụng hầu hết các cpu ở cuối danh sách. Thứ tự đảo ngược của danh sách bằng cách thêm một dấu trừ vào mã trường được sử dụng để sắp xếp, ví dụ: ps aux --sort -c

5
Cian D

Để thêm một điểm vào các câu trả lời có giá trị khác, tôi thích:

ps auxk-c | head -6

Nó cũng in tiêu đề, đó là Nice.

Ở đây k giống hệt với --sortc chỉ định sử dụng CPU (bí danh %cpu) trường để sắp xếp, trong khi - là để sắp xếp ngược lại.

Bạn có thể thêm nhiều chỉ định cách nhau bởi ,, các chỉ định có thể khác là: %mem, args, bsdstart, pid, gid, uid ... mà bạn có thể tìm thấy danh sách đầy đủ trong THÔNG SỐ KỸ THUẬT TIÊU CHUẨN phần của trang người đàn ông. Ví dụ:

 ps auxk -gid,-%mem | head -11

sẽ in 10 tiến trình với id nhóm cao nhất, được sắp xếp bên trong theo mức sử dụng bộ nhớ.

4
2i3r

Công cụ dòng lệnh ps có tùy chọn sắp xếp riêng, vì vậy tôi thích:

$ ps -eo pcpu,args --sort=-%cpu | head

Bạn có thể thêm các cột bạn muốn. Xem những tùy chọn khác có sẵn thông qua trang man ps.

$ man ps
3

Tôi tin rằng cách đơn giản nhất để xem top 5 quá trình tiêu thụ cp là,

ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 5

Để xem 5 quá trình tiêu thụ bộ nhớ hàng đầ là,

ps -eo pid,comm,%cpu,%mem --sort=-%mem | head -n 5

Ở đâu,

-e: Cờ này được sử dụng để chọn tất cả quá trình

-o: Cờ này được sử dụng để định dạng dưới dạng người dùng xác định.

pid: Đối số này được sử dụng để hiển thị pid

comm: Đối số này chỉ được sử dụng để hiển thị tên lệnh. Để nhận lệnh đầy đủ, hãy sử dụng args, cmd hoặc command

%cpu: Đối số này cho thấy tỷ lệ sử dụng cpu của quy trình ở định dạng "##. #". Ở đây pcpu cũng có thể được sử dụng.

%mem: Đối số này hiển thị tỷ lệ kích thước cài đặt thường trú của quy trình với bộ nhớ vật lý trên máy, được biểu thị bằng phần trăm. Ở đây pmem cũng có thể được sử dụng.

--sort: Chỉ định thứ tự sắp xếp. Sau = các - dấu được sử dụng để sắp xếp giá trị cao nhất ở trên cùng trong đó tùy chọn mặc định là + là liệt kê thứ tự tăng dần [i.e 0 đến n].

0
muhammad

top trên Mac OS X có tùy chọn chế độ ghi nhật ký ở dạng top -l numberOfSamples (dường như tương đương với chế độ hàng loạt của GNU top). Tuy nhiên, cần có ít nhất hai mẫu vì "mẫu đầu tiên được hiển thị sẽ có% CPU không hợp lệ được hiển thị cho mỗi quy trình, vì nó được tính bằng cách sử dụng delta giữa các mẫu "(man 1 top).

# examples
top -o cpu -l 2 -n 5 | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu -U $(logname) | tail -n 6
0
ulf

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

0
PSN