it-swarm-vi.com

Tại sao `htop` hiển thị quá trình nhiều hơn` ps`

Trong ps xf

26395 pts/78   Ss     0:00  \_ bash
27016 pts/78   Sl+    0:04  |   \_ Unicorn_Rails master -c config/Unicorn.rb                                           
27042 pts/78   Sl+    0:00  |       \_ Unicorn_Rails worker[0] -c config/Unicorn.rb                                        

Trong htop, nó hiển thị như sau: htop showing multiple Unicorn_Rails lines

Tại sao htop hiển thị quá trình nhiều hơn ps?

195
Cheng

Theo mặc định, htop liệt kê riêng từng luồng của một tiến trình, trong khi ps thì không. Để tắt hiển thị chủ đề, nhấn H hoặc sử dụng menu "Cài đặt/Tùy chọn hiển thị", "Ẩn chủ đề người dùng". Điều này đặt dòng sau vào ~/.htoprc Hoặc ~/.config/htop/htoprc (Bạn có thể đặt nó ở đó theo cách thủ công):

hide_userland_threads=1

(Ngoài ra hide_kernel_threads=1, Được bật bằng cách nhấn K, nhưng theo mặc định là 1).

Một tùy chọn hữu ích khác là các chủ đề Hiển thị trong một màu khác nhau trong cùng một menu (highlight_threads=1 Trong .htoprc), Làm cho các chủ đề được hiển thị bằng một màu khác (màu xanh lá cây trong chủ đề mặc định).

Trong dòng đầu tiên của màn hình htop, có một dòng như Nhiệm vụ trên: 377, 842 thr, 161 kthr; 2 đang chạy. Điều này cho thấy tổng số quy trình, luồng người dùng, luồng nhân và luồng trong trạng thái có thể chạy được. Các số không thay đổi khi bạn lọc màn hình, nhưng các dấu hiệu cho thấy thr thr và và kthr, biến mất khi bạn tắt các chủ đề của người dùng/kernel tương ứng.

Khi bạn thấy nhiều quy trình có tất cả các đặc điểm chung ngoại trừ các trường liên quan đến PID và CPU (Giá trị đẹp, CPU%, TIME +, ...), rất có thể chúng là các luồng trong cùng một quy trình.

279

Đối với tôi, trên hệ thống Arch Linux ít nhiều hiện tại, ps xf chỉ hiển thị cho tôi các quy trình thuộc sở hữu của ID người dùng của tôi. htop hiển thị cho tôi tất cả các quy trình. Thử ps -ef cho danh sách tất cả các quy trình, hoặc có lẽ ps -ejH để có được một danh sách mối quan hệ con/cha mẹ.

1
Bruce Ediger

htop cũng đang hiển thị các quá trình đã kết thúc. Điều này thật tuyệt, vì vậy bạn có thể thấy các quy trình tồn tại trong thời gian ngắn và những tài nguyên nào họ có thể đã tiêu thụ. Nếu bạn thoát khỏi htop và khởi động lại nó, bạn sẽ thấy chúng đã biến mất. Tôi không thể tìm ra cách để làm giảm quá trình lịch sử mà không cần khởi động lại, vì vậy có lẽ có một cách.

0
MikeB