Tại sao top báo cáo việc sử dụng CPU không chính xác?


10

Tôi có một máy có Intel(R) Xeon(R) CPU E5520thể nhìn thấy là 16 lõi logic (8 với HT). Nếu tôi chạy thứ gì đó để ăn thời gian CPU (luồng đơn), thì báo cáo chính xác 100% mức sử dụng CPU cho quá trình nhưng chỉ khoảng 3-4% tổng mức sử dụng.

Cpu(s):  3.6%us,  0.0%sy,  0.0%ni, 96.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.1%st

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1567 www       20   0 65632   84    4 R  100  0.0   0:05.96 burnMMX

Chắc chắn mức sử dụng được báo cáo phải là ~ 6,25% (1 trong 16 lõi).

  • Có phải là không chính xác bởi vì nó là một máy ảo?
  • Làm thế nào tôi có thể tính toán một giá trị chính xác?
linux  cpu  top 

1
bạn có thể thử atopvà thay đổi đầu trang để báo cáo việc sử dụng từng CPU riêng lẻ (bằng cách nhấn 1)
Hubert Kario

@HubertKario việc sử dụng được báo cáo cho từng lõi là chính xác, vậy tại sao sau đó tổng số sai?

Nếu mức độ sử dụng của các lõi riêng lẻ là chính xác thì điều này sẽ gợi ý một lỗi không thể xảy ra vì nó có vẻ như ...
Hubert Kario

Đây không phải là bài viết đầu tiên về kết quả hàng đầu không chính xác trong máy ảo. Bạn có thể mô tả công nghệ VM của bạn và hệ điều hành máy chủ và khách của bạn không?
Nils

@Nils Xen với máy khách Ubuntu / 2.6.32-21. Không có thông tin về hệ điều hành máy chủ.

Câu trả lời:


12

toptrong báo cáo tóm tắt sử dụng liên quan đến CPU với tất cả các lõi được thêm vào. Mặt khác, khi bạn xem trong danh sách các quy trình, phần trăm báo cáo hàng đầu được tham chiếu đến một lõi (thực hoặc HT). Hãy thử chạy một tiến trình với 4 luồng có thể ăn hết 4 lõi CPU, bạn sẽ thấy nó sử dụng 400% CPU.

Tôi không thể biết tại sao, nhưng đó là cách nó tophoạt động trên tất cả các hệ thống Linux mà tôi đã thấy.


5

Hầu hết thường tophoạt động ở chế độ 'Irix' theo mặc định, giống như bạn mô tả. Nếu bạn muốn có được tỷ lệ phần trăm của tổng số khả năng của CPU (tức là khi tổng mức sử dụng CPU có thể tăng thêm 100% và không phải cpu_cores_number * 100%), chỉ cần nhấn chế độ 'Irix' bằng cách nhấn I.

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.