Làm thế nào để tôi đọc htop


9

Tôi gặp khó khăn trong việc hiểu thông tin được hiển thị bởi htopsự thay thế phổ biến cho lệnh hàng đầu của Linux.

màn hình htop

Trong ảnh chụp màn hình ở trên, có nhiều phiên bản java được liệt kê, nhưng chỉ có phiên bản gốc sử dụng thời gian CPU. Những người khác là gì?

Tại sao các thanh sử dụng CPU hiển thị các lõi bận rộn như vậy khi cột% CPU cho thấy không xảy ra nhiều trên tất cả các quy trình? Trong thực tế, họ di chuyển mà không có mối tương quan hầu hết thời gian.

Tại sao Trung bình tải, trên cùng bên phải, mà tôi giả sử là lịch sử 3 bước, rất thấp khi các lõi hầu như luôn luôn xanh và trông bận rộn?

Ai đó sẽ rất tử tế để giải thích làm thế nào để đọc thông tin này?

Cảm ơn bạn!


Tôi đã thực hiện một số thay đổi giúp ích rất nhiều. Hiển thị các chủ đề trong một màu khác, hiển thị tên chủ đề, cập nhật tên quy trình khi làm mới và chủ yếu, thay đổi độ trễ thành 2/10 giây. Tốc độ cập nhật mặc định chỉ hiển thị độ trễ lớn giữa các mét CPU và các tiến trình.
Luke Puplett

1
Đối với tải trung bình ít nhất, đó không nhất thiết là một giá trị thấp. Tải về cơ bản là một chỉ báo nếu hệ thống phải chờ để làm một cái gì đó. Giá trị chấp nhận nhỏ hơn số lõi, trong trường hợp này 4. Vì vậy, các giá trị trung bình đó là hợp lý. Họ là 1, 5 và 15 phút cuối cùng. Để biết thêm thông tin, hãy xem [Wikipedia] ( en.wikipedia.org/wiki/Load_(computing))
ssmy

Câu trả lời:


5
  1. Về "Tải" và% CPU, wikipedia có giải thích chi tiết và ví dụ, sau đây là trích dẫn một phần

    Một máy tính nhàn rỗi có số tải là 0 và mỗi quá trình sử dụng hoặc chờ CPU (hàng đợi sẵn sàng hoặc hàng đợi chạy) tăng số tải lên 1. Hầu hết các hệ thống UNIX chỉ đếm các quá trình trong khi chạy (trên CPU) hoặc có thể chạy được (chờ CPU) trạng thái. Tuy nhiên, Linux cũng bao gồm các quy trình ở trạng thái ngủ không bị gián đoạn (thường chờ hoạt động của đĩa), điều này có thể dẫn đến kết quả khác nhau rõ rệt nếu nhiều quy trình vẫn bị chặn trong I / O do hệ thống I / O bận rộn hoặc bị đình trệ. Ví dụ, điều này bao gồm các quá trình chặn do lỗi máy chủ NFS hoặc do phương tiện chậm (ví dụ: thiết bị lưu trữ USB 1.x). Những trường hợp như vậy có thể dẫn đến mức trung bình tải cao, không phản ánh sự gia tăng thực tế trong việc sử dụng CPU (nhưng vẫn đưa ra ý tưởng về thời gian người dùng phải chờ đợi).

    Các hệ thống tính toán trung bình tải là trung bình di chuyển theo cấp số nhân / trọng số của số tải. Ba giá trị trung bình tải đề cập đến một, năm và mười lăm phút hoạt động của hệ thống trước đây.

    Đối với các hệ thống CPU đơn bị ràng buộc CPU, người ta có thể nghĩ mức trung bình tải là phần trăm sử dụng hệ thống trong khoảng thời gian tương ứng. Đối với các hệ thống có nhiều CPU, người ta phải chia số lượng cho số lượng bộ xử lý để có được tỷ lệ phần trăm tương đương.

    Các thanh có thể bận di chuyển, nhưng chúng không bao giờ đạt 100%, điều này cho thấy cpu / lõi được sử dụng đầy đủ. Thanh chỉ là một hình ảnh trực quan của% sử dụng cpu, ở mức 27%, 26,5%, 24,5%, 24,7% và 71,7%. Tất cả các lõi cpu vẫn có sức mạnh để "dự phòng". Chúng đều được sử dụng tại thời điểm đó.

    Một hệ thống 5 lõi / cpu được sử dụng đầy đủ sẽ có tải 5 hoặc cao hơn.

  2. Về các hàng Java, chúng là các quy trình mẹ (PID = 5073) và các tiến trình con. Tôi không thể giải thích tại sao cha mẹ tích lũy thời gian cpu nhiều nhất. Điều đó thực sự phụ thuộc vào logic nội bộ của chương trình. Tuy nhiên, theo TIME +, các quy trình con đó đã tiêu tốn thời gian cpu, với quy trình cuối cùng (PID = 5074) được tích lũy nhiều nhất.


Có thể các tiến trình con là luồng xử lý JVM không? Khi tôi đặt tùy chọn hiển thị tên luồng, tất cả chúng đều được đặt tên giống nhau. Tôi là một lập trình viên Windows + .NET, fyi.
Luke Puplett

Vâng, có thể họ là chủ đề.
John Siu
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.