Theo tôi không có câu trả lời nào ở trên là thỏa đáng.
Tôi nghĩ rằng bài viết tôi đang đề cập đến liên kết sau đây được nhắm mục tiêu tốt để trả lời câu hỏi này:
http://perfdynamics.blogspot.ch/2014/01/monitoring-cpu-utilization-under-hyper.html
TRÍCH DẪN:
Ý tưởng đằng sau HT là cho phép một luồng ứng dụng khác chạy khi quầy ứng dụng hiện đang chạy; do hiểu sai chi nhánh, bong bóng trong đường ống, v.v. Để làm được điều đó, phải có một cổng hoặc thanh ghi AS khác. Thanh ghi đó hiển thị với HĐH khi HT được bật. Tuy nhiên, hệ điều hành (và tất cả các chuỗi thực phẩm cho đến bất kỳ công cụ hoàn hảo nào bạn đang sử dụng) hiện đều nghĩ rằng khả năng xử lý gấp đôi khả năng của bộ xử lý, tức là 100% CPU ở mỗi cổng AS.
Nhưng dưới mui xe, vẫn chỉ có một đơn vị thực thi: lõi đơn, vật lý mà bạn đã bắt đầu trước khi HT được bật. Sự khác biệt là nó đang được chia sẻ theo một cách nào đó giữa 2 cổng AS. Làm thế nào lõi đơn được chuyển đổi giữa hai cổng rất phức tạp nhưng dễ hiểu nhất về hàng đợi được thăm dò. Tôi đi vào mức độ chi tiết đó trong các lớp học GCaP của tôi.
Các phép đo kiểm tra trường hợp tốt nhất mà tôi có, chỉ ra rằng mỗi cổng HT không thể trở nên bận rộn hơn 75%, trung bình hoặc 150% tổng công suất dự kiến 200% theo HĐH. "Thiếu" 50% công suất, mà tôi đã đề cập trước đó, là một ảo ảnh. Intel đã tuyên bố rằng một cái gì đó trong phạm vi từ 120% đến 130% có thể được mong đợi cho các ứng dụng chung.
Trên thực tế, tôi khá chắc chắn rằng hệ điều hành có thể đạt 100% trên mỗi lõi ảo, không nghi ngờ gì về điều đó. Tôi vừa thực hiện một:
mvn clean install -DskipTests -T 5
Và tôi có thể đảm bảo với bạn 8 lõi ảo của tôi và 4 lõi vật lý đều sử dụng 100% CPU. Và tôi chắc chắn không có 8 nhân trong máy.
Tóm lại, bạn có thể giả sử như sau nếu tổng tải CPU vượt quá 100%, và rất có thể là khá chính xác, sử dụng chính xác 100% lõi vật lý. Đó là, nếu bạn có CORE 1 vật lý được chia thành CPU hệ điều hành 1 và CPU 2. Và trên CPU 1, bạn có tổng mức sử dụng là 50% và trên CPU 2, bạn có tổng mức sử dụng là 50%, rất có thể bạn đang ở ngoài đời thực gây áp lực tổng mức sử dụng 100% cho CPU đó. Bạn đã tối đa hóa nó ra.
Nhưng tất nhiên hệ điều hành trong các công cụ giám sát hệ thống của nó không biết rằng nó đang bán cho bạn một ảo ảnh. Từ quan điểm của hệ điều hành và cách quản lý tài nguyên, nó sẽ tin rằng eeach của hai lõi ảo đó vẫn còn 50%, vì vậy nếu có nhiều nhiệm vụ được đưa vào, nó sẽ cố gắng phân phối chúng đồng đều trên hai lõi đó . Vì vậy, khi bạn sử dụng CPU hơn 100%, trong một khoảng thời gian sử dụng CPU, luôn có công việc được xếp hàng để chạy trong khoảng thời gian đó mà không bao giờ có thay đổi để có được một khoảng thời gian trên CPU. Cuối cùng, nó sẽ nhận được nó, nhưng luôn có một số luồng thực sự thậm chí không chạy mặc dù chúng được lên lịch để chạy.
Cảm ơn