# Windows에서 시스템 인터럽트의 CPU 사용량이 높을 때 해결 방법

시스템 인터럽트(System Interrupts)는 프로그램이 아닙니다. 하드웨어에 응답하는 데 쓰인 CPU 시간, 즉 장치가 관심을 요청할 때 응답하는 드라이버 코드를 보여 주는 작업 관리자의 한 행입니다. 낮은 수치는 정상이며, 이 글을 위해 측정한 유휴 상태의 노트북에서는 1퍼센트 미만이었습니다. 조용한 PC에서 몇 퍼센트 이상을 계속 차지한다면 대개 드라이버나 장치가 문제이므로, 해결은 그것을 찾는 것입니다. 이 행은 종료할 수 없고, 디스크에는 시스템 인터럽트라는 이름의 것이 없습니다.

## 이 수치의 의미

장치는 무언가 필요할 때 프로세서에 인터럽트를 겁니다. 네트워크 카드에 패킷이 도착했거나, 오디오 장치에 다음 버퍼가 필요한 경우입니다. Windows는 즉시 드라이버의 인터럽트 루틴을 실행하는데, Microsoft의 드라이버 문서는 [이 루틴이 가능한 한 빠르게 실행되어야 한다](https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/introduction-to-dpc-objects)고 하므로 나머지 일은 지연 프로시저 호출(DPC)에 넘깁니다. DPC는 곧이어 인터럽트보다 낮은 우선순위로, 하지만 일반 프로그램보다는 앞서 실행됩니다. 시스템 인터럽트는 그 시간을 합산한 것입니다.

그래서 숫자가 보여 주는 것보다 더 해롭습니다. DPC나 인터럽트 루틴이 코어에서 실행되는 동안 그곳의 일반 스레드는 기다리므로, 느린 드라이버는 오디오 지직거림, 마우스 끊김, 프레임 드롭으로 나타납니다.

작업 관리자는 반올림하고 1초에 한 번만 표본을 추출하므로 직접 측정해 보세요.

```powershell
(Get-Counter '\Processor(_Total)\% DPC Time', '\Processor(_Total)\% Interrupt Time' -SampleInterval 2 -MaxSamples 5).CounterSamples | ForEach-Object { '{0} {1:N2}' -f $_.Path, $_.CookedValue }
```

이 글을 확인할 때 Windows 11이 설치된 유휴 상태의 ThinkPad에서는 둘 다 0.38이 나왔습니다. 공식 한계는 없지만, 대략적인 기준으로 조용한 PC에서 둘 중 하나가 5퍼센트를 넘는 수치가 계속된다면 추적해 볼 만합니다.

## 드라이버 찾기

무엇이 바뀌었는지부터 보고, 장치를 하나씩 빼고, 그다음 측정합니다.

1. **필요 없는 것은 모두 뽑습니다.** USB 허브, 웹캠, 오디오 인터페이스, 도킹 스테이션, 프린터입니다. 하나를 뽑을 때마다 1분 동안 수치를 지켜보세요. 고장 난 USB 장치는 전형적인 원인이며 이 단계는 비용이 들지 않습니다.
2. **무엇이 바뀌었는지 생각합니다.** 이 증상이 시작되기 직전에 드라이버나 Windows 업데이트가 있었나요? **장치 관리자**에서 해당 장치의 **속성 › 드라이버**를 열고 **드라이버 롤백**을 시도해 보세요.
3. 장치 관리자에서 **의심되는 것을 하나씩 비활성화합니다.** Wi-Fi와 Bluetooth 어댑터를 먼저, 그다음 오디오, 그다음 디스플레이나 디스크가 아닌 나머지입니다. 1분 동안 지켜본 뒤 다시 사용으로 바꾸세요.
4. 그래도 답이 없다면 **LatencyMon으로 측정합니다.** Resplendence의 이 무료 [도구](https://www.resplendence.com/latencymon)는 드라이버별 DPC와 ISR 시간을 보고합니다. 문제가 일어나는 동안 몇 분 실행하고, **Drivers** 탭을 가장 높은 실행 시간 순으로 정렬해 읽으세요. 네트워크라면 `ndis.sys`, 또는 제조사의 오디오 드라이버처럼 거기에 나온 파일이 어디를 볼지 알려 줍니다.
5. 더 자세한 정보가 필요하면 **트레이스를 기록합니다.** Microsoft의 Windows Performance Recorder는 Windows에 포함되어 있고 관리자 터미널이 필요합니다.

```powershell
wpr -start CPU
wpr -stop interrupts.etl
```

증상이 나타나는 상태에서 1분 뒤에 중지하고, Windows Performance Analyzer에서 파일을 열어 **DPC/ISR** 그래프를 보세요.

## 드라이버 이름은 보통 무엇을 뜻하나

| 드라이버 또는 장치 | 흔한 원인 | 시도할 것 |
| --- | --- | --- |
| `ndis.sys`, Wi-Fi 또는 이더넷 드라이버 | 네트워크 드라이버, 또는 그 위의 VPN이나 필터 | PC 또는 칩 제조사에서 업데이트하고 VPN을 끈 채 시험합니다 |
| `HDAudBus.sys`, `RtkHDAud.sys`, USB 오디오 | 오디오 드라이버 | PC 제조사에서 업데이트하거나 다른 출력으로 시험합니다 |
| `USBPORT.SYS`, `USBXHCI.SYS` | 오작동하는 USB 장치나 허브 | 장치를 하나씩 뽑고 다른 포트를 시도합니다 |
| `nvlddmkm.sys`, `amdkmdag.sys`, `igdkmd64.sys` | 그래픽 드라이버 | GPU 또는 PC 제조사에서 클린 업데이트 |
| `storport.sys`, `stornvme.sys` | 디스크 또는 저장소 드라이버 | 펌웨어를 업데이트하고 드라이브 상태를 확인합니다 |
| `ACPI.sys` | 펌웨어 또는 전원 관리 | PC 제조사에서 BIOS나 UEFI를 업데이트합니다 |

노트북에서는 해당 하드웨어용으로 만든 드라이버가 있으므로 먼저 PC 제조사의 지원 페이지를 이용하세요. 모든 것을 뽑고 최신 드라이버와 깨끗한 재시작에서도 수치가 높다면, 특히 떨어뜨리거나 액체를 쏟은 뒤라면 하드웨어 문제일 가능성이 있습니다. 여기서는 Linux 라이브 USB가 도움이 될 수 있습니다. 그쪽에서도 기기가 끊긴다면 Windows 드라이버가 원인일 가능성은 낮습니다.

## 하지 말아야 할 것

- 종료하는 방법을 찾지 마세요. 이 행 뒤에는 프로세스가 없으므로 작업 관리자가 멈출 것이 없습니다.
- 드라이버 업데이트 유틸리티를 설치하지 마세요. 노트북에 잘못된 빌드를 고르는 경우가 많으며, 그것이 고치려던 문제일 수 있습니다.
- 포럼 글을 보고 레지스트리에서 인터럽트나 MSI 설정을 바꾸지 마세요. 잘못된 값은 PC가 부팅되지 않게 할 수 있습니다.
- "시스템 최적화 프로그램"에 돈을 쓰지 마세요. 드라이버 버그는 그 안의 무엇으로도 고칠 수 없고, 자체 백그라운드 작업만 늘립니다.

## Mole은 어디에 쓰이나

Mole for Windows는 상태 페이지가 실제 프로세스를 읽고 이 행은 프로세스가 아니기 때문에 시스템 인터럽트를 나열하지 않습니다. 드라이버 도구도 없습니다. 반대편을 배제하는 데는 쓸모가 있습니다. 상태에서 어떤 프로세스가 실제로 열심히 일하고 있다면 문제는 그 프로세스일 수 있으므로 먼저 [Windows의 높은 CPU 사용량](/ko/windows/blog/windows-high-cpu-usage)을 읽으세요. 어떤 프로세스도 부하를 설명하지 못한다면 위의 단계가 맞는 길입니다. 일반 프로그램이 아닌 작업 관리자의 다른 행은 [System Idle Process](/ko/windows/blog/system-idle-process-high-cpu)를 참고하세요.

## 자주 묻는 질문

### 작업 관리자의 시스템 인터럽트란 무엇인가요?

CPU가 하드웨어에 응답하는 드라이버 코드를 실행하는 데 쓴 시간으로, 한 행으로 표시됩니다. 파일이 없고 그 뒤에 프로그램도 없습니다.

### 시스템 인터럽트는 CPU를 얼마나 써야 하나요?

유휴 상태에서는 대개 1퍼센트를 훨씬 밑돌고, 네트워크나 디스크 작업이 많으면 잠깐 오를 수 있습니다. 조용한 PC에서 몇 퍼센트가 계속된다면 조사해 볼 만합니다.

### 시스템 인터럽트를 비활성화할 수 있나요?

아닙니다. 서비스나 프로그램이 아닙니다. 하드웨어가 요구하는 작업을 보고하는 것이므로, 해결은 이를 일으키는 드라이버나 장치입니다.

### 시스템 인터럽트는 바이러스인가요?

아닙니다. 악성코드가 자체 드라이버를 실행할 수는 있지만 드문 일이며, LatencyMon이 모르는 드라이버를 지목했다면 Microsoft Defender 검사는 합리적입니다.

### 시스템 인터럽트 때문에 오디오가 지직거리는 이유는 무엇인가요?

그 코드는 일반 프로그램보다 앞서 실행되므로, 느린 드라이버는 그 코어의 오디오 프로그램이 다음 버퍼를 채우는 시점을 지나도록 지연시킵니다. LatencyMon은 이런 경우를 위해 만들어졌고 드라이버를 지목해 줍니다.


Canonical: https://mole.fit/ko/windows/blog/system-interrupts-high-cpu
