Windows 는 Linux와 동일한 방식으로 ” iowait” 를 설명하고보고 합니까? 즉, 프로세스가 “무정전 절전 모드”로 전환되고 소요 된 시간이 “CPU free”에서 차감됩니까?
그렇다면, “계산으로 인한 CPU 사용률”과 반대로 “IO 서비스 지연으로 인한 CPU 사용률”을 감지하는 데 어떤 Perfmon 카운터가 적합합니까?
답변
Windows 커널의 일부 개념은 Linux의 개념과 크게 다르기 때문에 iowait
Perfmon에 카운터가 표시되지 않습니다 .
첫째, Windows에서 스케줄링 엔티티는 프로세스가 아닌 스레드입니다. 프로세스는 1 개 이상의 스레드를위한 컨테이너 일뿐입니다. 또한 Windows는 스레드에 대해 인터럽트 불가능한 휴면 상태를 정의하지 않습니다 (보다 정확하게는 모든 프로세스 요청이 동일한 프로세스의 다른 스레드에 의해 중단 될 수 있음). 따라서 iowait
Windows 플랫폼 에는 정확한 대응 이 없습니다 . Windows는 스레드가 동기화 I / O 요청을 발행하자마자 스케줄러에 의해 컨텍스트 전환되므로 스레드가 동기화 I / O를 기다리는 시간을 “유휴”로보고합니다.
특정 장치에서 I / O 작업에 소요 된 총 시간에 관심 이있는 경우이 기간 내에 처리 된 각 요청 수와 함께 대기 시간 관련 카운터 를 확인해야합니다. 그러나 이것은 동기식 액세스 방식과 비동기식 액세스 패턴으로 분류 할 수 없습니다.