Báo cáo sử dụng CPU Windows i iititit Windows


9

Windows có tài khoản và báo cáo " iowait" theo cách tương tự như Linux không? Đó là, các quá trình đi vào "giấc ngủ không bị gián đoạn" và thời gian của chúng bị trừ đi từ "CPU miễn phí"?

Nếu vậy, bộ đếm Perfmon nào sẽ thích hợp để phát hiện "cpu bận do sự chậm trễ phục vụ IO" trái ngược với "cpu bận do tính toán?"


Đây là thuật sĩ hạt nhân. Bạn có thể muốn xem xét "Windows Internals" để có hình ảnh chi tiết hơn.
the-wợi

Câu trả lời:


10

Một số khái niệm trong nhân Windows khác biệt đáng kể so với Linux, đây là lý do tại sao bạn không thấy bộ iowaitđếm trong Perfmon.

Đầu tiên, thực thể lập lịch trình trong Windows là một luồng, không phải là một quá trình. Một tiến trình chỉ là một thùng chứa cho hơn 1 chủ đề. Ngoài ra, Windows không xác định trạng thái ngủ không bị gián đoạn cho các luồng của nó (chính xác hơn, tất cả các yêu cầu I / O có thể bị gián đoạn - ví dụ như bởi một luồng khác của cùng tiến trình), do đó sẽ không có iowaitđối tác chính xác trên nền tảng Windows. Windows báo cáo thời gian các luồng của nó đang chờ I / O đồng bộ hóa là "không hoạt động" vì các luồng chỉ được chuyển đổi theo ngữ cảnh bởi bộ lập lịch ngay khi chúng phát hành các yêu cầu I / O đồng bộ hóa.

Nếu bạn quan tâm đến tổng thời gian dành cho các thao tác I / O trên một thiết bị cụ thể, bạn nên xem xét các bộ đếm liên quan đến độ trễ cùng với số lượng yêu cầu tương ứng được xử lý trong khoảng thời gian này. Tuy nhiên, điều này sẽ không cho phép bạn chia nhỏ nó theo các mẫu truy cập đồng bộ và không đồng bộ.

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.