Tại sao đồng hồ htop hiển thị> 90% trong khi bảng là 0,0%?


12

Tại sao các đồng hồ đo tiến độ trên đỉnh màn hình htophiển thị mức sử dụng CPU luôn ở mức trên> 90% trong khi các số trong bảng bên dưới hiển thị một hệ thống gần như không sử dụng với mức sử dụng CPU và tải trung bình ở mức 0,0%?

lấy một phần màn hình htop


1
Tôi có cùng một vấn đề chính xác và tôi cũng đang sử dụng Dreamhost VPS (máy chủ riêng ảo).
duality_

BTW, nhìn vào ví dụ của tôi, nó thậm chí còn tệ hơn: demo.ddesign.si/temp/dh3.png
duality_

Câu trả lời:


6

htopkhông biết nó đang chạy trên môi trường ảo hóa cấp kernel ( VPS Dreamhost đang sử dụng công nghệ VServer ). Sau đó, nó sẽ hiển thị việc sử dụng CPU cho tất cả các phiên bản HĐH chia sẻ cùng một kernel, không chỉ cho riêng bạn.

Hãy xem vtopđầu ra mà tất cả các quá trình chia sẻ CPU, không chỉ các quá trình trong thùng chứa của bạn.

Nếu vtopkhông được cài đặt và điều này có thể được mong đợi cho một giải pháp thương mại vì khách hàng sẽ không muốn xem các quy trình nào đang chạy các khách hàng khác, không có cách nào để khắc phục sự cố từ bên trong container của bạn, trừ khi vá topnguồn để tính toán Sử dụng CPU thay vì lấy nó từ số liệu thống kê kernel.

Nó có thể làm điều đó bằng cách tóm tắt việc sử dụng CPU của tất cả các quy trình đang chạy trong VServer của bạn, ví dụ:

ps aux | awk '
    {cpu+=$3; ram+=$6} 
    END {printf("cpu: %d%%, RAM: %.2f MiB\n",cpu,ram/1024) }'

+1 cho lời giải thích; topbáo cáo tương tự như htop trên máy này. Vtop không được kiểm tra là không cài đặt. Đánh dấu điều này là được chấp nhận vì nó trả lời "tại sao?", Mặc dù nó không giải quyết được ẩn ý "và những gì có thể được thực hiện về nó?", Vì điều đó không được nói ra
matt wilkie 22/03/13

4

Kiểu không nhất quán này thường là biểu hiện của việc sử dụng bộ xử lý cao bởi các luồng nhân, không được hiển thị htoptheo mặc định. Để hiển thị chúng, htopđi đến Setup, sau đó Display options, và bỏ chọn Hide kernel threads. Điều này sẽ cho phép bạn xem (các) chủ đề chịu trách nhiệm.

Bạn cũng có thể vô hiệu hóa hành vi này bằng cách đặt hide_kernel_threadsthành 0 in ~/.htoprc.


2
cảm ơn Chris Tôi đã làm điều đó nhưng các giá trị bảng vẫn là 0%. Có lẽ đây là một cái gì đó đặc biệt để chạy trong một máy ảo? Máy chủ lưu trữ là Máy chủ riêng ảo (trên Dreamhost.com).
matt wilkie

Đối với tôi, đây là câu trả lời đúng hơn. Tôi đã có một quá trình chiếm rất nhiều CPU từ kernel và nó không hiển thị trong các quy trình không gian người dùng.
Patrick Chu

... ngoại trừ các đồng hồ CPU HTop hiển thị thời gian của nhân có màu đỏ và thời gian của người dùng có màu xanh lục và chúng ta có thể thấy rõ nó gần như toàn bộ màu xanh lá cây.
Toán học,

1

Hãy thử khởi chạy htopvới sudo. Bạn cần quyền truy cập root để xem các luồng hoạt động trong bảng.


Tôi không biết điều này hoạt động tốt như thế nào trên các môi trường ảo hóa thông thường, nếu có một thứ như thường lệ, nhưng không hoạt động trên VPS dreamhost.
matt wilkie 22/03/13
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.