# Antimalware Service Executable이 CPU를 많이 쓸 때 Defender가 하는 일

Antimalware Service Executable은 Windows에 내장된 바이러스 백신인 Microsoft Defender Antivirus이며, 프로세스 파일은 `MsMpEng.exe`입니다. CPU를 많이 쓸 때는 보통 스캔 중입니다. 예약된 스캔, 새 보안 인텔리전스가 도착한 뒤의 스캔, 또는 다른 것이 지금 여는 파일의 실시간 스캔입니다. 무엇을 바꾸기 전에 어느 쪽인지 확인합니다. 각각 해결이 다르고, 어느 것도 Defender를 영구적으로 끌 필요는 없습니다.

## 프로세스가 하는 일

Microsoft의 [Defender 성능 문제 해결 글](https://learn.microsoft.com/en-us/defender-endpoint/troubleshoot-performance-issues)은 프로세스를 직접 지목합니다. Anti-malware Service Executable, `MsMpEng.exe`, Microsoft Defender Antivirus입니다. 일은 세 그룹으로 나뉩니다.

| 일의 출처 | 언제 일어나는지 | 어떻게 보이는지 |
| --- | --- | --- |
| 실시간 보호 | 파일이 열리거나, 닫히거나, 실행될 때마다 | CPU가 다른 작업을 따름. 빌드, 설치 프로그램, 압축 풀기, 작은 파일 대량 복사 |
| 예약된 스캔 | 일정에 따라, 기본적으로 PC가 유휴일 때만 | 자리를 비울 때 시작되고, 돌아와도 계속될 수 있음 |
| 보안 인텔리전스 업데이트 뒤의 스캔 | 새 정의가 설치된 뒤 | 일정 밖의 스캔처럼 보임 |

실시간 보호가 대부분의 사람이 만나는 부분입니다. 같은 글은 비용이 큰 경우를 나열합니다. 실행되는 서명되지 않은 `.exe`와 `.dll`, 데이터 저장소로 쓰이는 HTA와 CHM 같은 복잡한 파일 형식, 난독화된 스크립트, 네트워크 위치나 OneDrive로 동기화되는 프로필 폴더에 있는 `.iso`나 `.vhdx` 같은 큰 파일입니다. 작은 파일을 수천 개 쓰는 프로젝트 빌드는 이것의 일상 버전입니다. 컴파일러가 쓰는 모든 파일을 Defender가 봅니다.

<figure class="blog-diagram">
  <picture>
    <source media="(max-width: 900px)" srcset="/img/blog/windows-antimalware-service-executable-high-cpu-en-mobile.webp" type="image/webp" width="768" height="1180">
    <img src="/img/blog/windows-antimalware-service-executable-high-cpu-en.webp" width="1360" height="454" loading="lazy" alt="Defender 스캔의 세 종류">
  </picture>
  <figcaption>실시간 스캔은 다른 일을 따르고, 예약된 스캔은 시계를 따르며, 업데이트가 자체 스캔을 시작할 수 있습니다. 각각 해결이 다릅니다.</figcaption>
</figure>

## 설정을 바꾸지 않고 먼저 확인합니다

`Ctrl + Shift + Esc`로 작업 관리자를 열고 CPU로 정렬한 뒤, 같은 순간에 다른 무엇이 바쁜지 적습니다. Antimalware Service Executable이 빌드, 설치 프로그램, 큰 복사와 함께 오르내리면 그 일의 실시간 스캔입니다. 다른 것은 없는데 바쁘면 스캔일 가능성이 큽니다. 몇 분 기다렸다가 다시 봅니다. 끝나는 스캔은 결함이 아니라 정상적인 동작입니다.

그다음 시작 메뉴에서 Windows 보안을 열고 바이러스 및 위협 방지로 갑니다. [Microsoft의 Windows 보안 안내](https://support.microsoft.com/en-us/windows/virus-and-threat-protection-in-the-windows-security-app-1362f4cd-d71a-b52a-0b66-c2820032b65e)는 거기 있는 검사 옵션(빠른 검사, 전체 검사, 사용자 지정 검사, Microsoft Defender 바이러스 백신(오프라인 검사))과 보호 기록을 설명합니다. 여기서 보호 기록이 중요합니다. Defender가 무언가를 찾아 처리 중이면 CPU 사용에는 이유가 있고, 거기에 나열된 항목이 다룰 대상입니다.

어떤 파일의 비용이 가장 큰지 정확히 알려면 Defender에 성능 분석기가 있습니다. [Microsoft의 분석기 안내](https://learn.microsoft.com/en-us/defender-endpoint/tune-performance-defender-antivirus)는 느린 작업을 재현하는 동안 Defender의 스캔 이벤트를 기록한 뒤, 스캔 시간 기준으로 상위 파일, 경로, 확장자, 프로세스를 보고합니다. PowerShell을 관리자로 실행하고, 기록을 시작한 뒤 느린 일을 반복하고, Enter를 눌러 멈춥니다.

```powershell
New-MpPerformanceRecording -RecordTo C:\Temp\defender.etl
Get-MpPerformanceReport -Path C:\Temp\defender.etl -TopFiles 10 -TopProcesses 10
```

경로는 예입니다. 있는 폴더를 사용합니다. 보고서는 데이터를 읽고 설정을 바꾸지 않습니다. 상위 항목이 자신의 빌드 출력이나 패키지 캐시이면 실시간 비용을 찾은 것입니다. 받은 아카이브나 알아보지 못하는 도구이면 계속 스캔합니다.

## 스캔: 빠른 검사가 권장되는 기본입니다

[Microsoft의 스캔 안내](https://learn.microsoft.com/en-us/defender-endpoint/schedule-antivirus-scans)는 정기 예약 스캔에 빠른 검사를 권합니다. 빠른 검사는 악성코드가 Windows와 함께 시작되도록 자신을 등록하는 곳, 레지스트리 키와 시작 폴더 같은 곳을 확인하며, 실시간 보호와 함께 그것이 Microsoft가 권하는 범위입니다. 전체 검사는 모든 고정 드라이브를 읽고, 큰 디스크에서는 몇 시간이나 며칠이 걸릴 수 있으며, Microsoft는 일반적으로 예약하지 말라고 합니다. 전체 검사를 직접 시작했다면 CPU 사용은 끝날 때까지 계속됩니다.

같은 안내는 Defender가 예약된 스캔 15분 전에 업데이트를 확인한다고 하고, 문제 해결 글은 보안 인텔리전스 업데이트 뒤의 스캔이 기본적으로 실행된다고 설명합니다. 고르지 않은 시간에 스캔이 나타날 수 있는 이유입니다.

예약된 스캔을 근무 시간에서 옮기려면 Microsoft의 [작업 스케줄러 안내](https://support.microsoft.com/windows/schedule-a-scan-in-microsoft-defender-antivirus-54b64e9c-880a-c6b6-2416-0eb330ed5d2d)가 작업 스케줄러 라이브러리 › Microsoft › Windows › Windows Defender를 연 뒤 Windows Defender Scheduled Scan을 열고, 트리거 탭에 트리거를 추가합니다. PC는 켜져 있지만 쓰지 않는 시간, 예를 들어 점심시간을 고릅니다. 시간을 옮겨도 스캔은 유지됩니다. 대가를 치르는 시각만 바뀝니다.

## 빌드 폴더: 제외보다 Dev Drive

비용이 개발 작업에서 오면 Windows 11에서 Microsoft의 답은 [Dev Drive](https://learn.microsoft.com/en-us/windows/dev-drive/)입니다. 소스 저장소, 패키지 캐시, 빌드 출력을 위한, 최소 50 GB의 별도 ReFS 볼륨입니다. 신뢰할 수 있는 Dev Drive는 Defender를 성능 모드로 실행하며, Microsoft는 이것을 폴더 제외의 안전한 대안으로 설명합니다. 파일은 여전히 스캔되지만 빌드에 미치는 영향은 적습니다. 관리자 프롬프트에서 상태를 확인할 수 있습니다.

```powershell
fsutil devdrv query D:
```

`D:`를 자신의 Dev Drive 문자로 바꿉니다. C: 드라이브는 Dev Drive가 될 수 없고, 기존 볼륨은 포맷하지 않고 변환할 수 없으며, Microsoft는 Visual Studio와 SDK 같은 개발 도구를 C:에 두라고 권합니다. 캐시를 옮기는 것은 설정을 더하는 것보다 큰 변경입니다. Dev Drive 페이지에 npm, NuGet, pip, Cargo, Maven, Gradle의 환경 변수가 있습니다. 그 폴더 중 어느 것을 대신 비울 수 있는지는 [Windows 개발자 캐시](/ko/windows/blog/windows-developer-caches)를 봅니다.

## 제외: 신뢰하는 폴더에만, 무엇을 포기하는지 알고

제외는 Defender가 그 파일, 폴더, 파일 형식, 프로세스를 스캔하지 않게 합니다. Windows 보안에서 [Microsoft의 제외 단계](https://support.microsoft.com/en-us/windows/add-an-exclusion-to-windows-security-811816c0-4dfd-af4a-47e4-c301afe13b26)는 바이러스 및 위협 방지 › 설정 관리 › 제외 추가 또는 제거로 가며, 같은 페이지는 제외된 항목이 장치와 데이터를 취약하게 둘 수 있다고 경고합니다. Microsoft의 [제외 참고](https://learn.microsoft.com/en-us/defender-endpoint/microsoft-defender-antivirus-exclusions-configure)도 보통은 제외가 전혀 필요 없다고 합니다.

그래도 하나를 추가한다면 좁게 둡니다.

- 자신의 신뢰하는 도구만 쓰는 폴더, 예를 들어 프로젝트 하나의 빌드 출력. 드라이브 전체나 사용자 프로필 전체가 아닙니다.
- 다운로드, 바탕 화면, 브라우저의 다운로드 폴더, 메일이나 채팅이나 인터넷에서 파일을 받는 폴더는 절대 제외하지 않습니다. 악성코드가 도착하는 곳입니다.
- 프로세스 제외는 그 프로세스가 여는 모든 파일을 다루므로, 컴파일러나 패키지 관리자를 제외하면 그것이 받는 것도 스캔하지 않습니다.

각 제외는 교환입니다. 그 폴더의 CPU는 줄고, 거기에 도착하는 것은 스캔되지 않습니다. 폴더가 받은 파일을 담기 시작하면 제외를 제거합니다.

## 하지 말 것

레지스트리, 그룹 정책, "debloat" 스크립트, 제3자 조정 도구로 Defender를 영구적으로 끄지 마세요. Windows 보안에서 실시간 보호를 끄는 것은 설계상 일시적입니다. [Microsoft는](https://support.microsoft.com/en-us/windows/virus-and-threat-protection-in-the-windows-security-app-1362f4cd-d71a-b52a-0b66-c2820032b65e) 잠시 뒤 자동으로 다시 켜진다고 하며, 꺼져 있는 동안 열거나 받는 파일은 스캔되지 않습니다. 문제 해결 글은 원인에서 제외하려고, 문제 해결 모드를 통해 잠깐만 끄라고 제안할 뿐입니다.

작업 관리자에서 MsMpEng.exe를 끝내거나 Defender 폴더의 파일을 지우지 마세요. 숫자를 낮추려고 `C:\`나 사용자 폴더 전체를 제외하지 마세요. 다른 보안 제품도 함께 실행한다면, Microsoft 글은 각 제품의 프로세스를 상대의 제외에 넣으라고 권합니다. 두 스캐너가 같은 파일을 검사하는 것은 높은 CPU의 알려진 출처입니다.

## 변경이 되었는지 확인합니다

일정을 옮기거나, 캐시를 Dev Drive로 옮기거나, 좁은 제외를 추가한 뒤 같은 빌드 같은 일을 반복하고 비교합니다. 분석기를 다시 기록해 그 폴더가 이제 건너뛴 이유를 보여 주는지, 스캔 시간이 줄었는지 확인할 수 있습니다. Windows 보안의 바이러스 및 위협 방지에서 보호는 여전히 켜져 있어야 합니다.

Mole은 Defender 설정이나 제외를 바꾸지 않습니다. 창 왼쪽 위 Mole 표시를 클릭한 뒤 Doctor 실행에서 여는 Doctor 보고서는 Defender 실시간 보호가 켜져 있는지 보여 주고, 일주일 동안 업데이트되지 않은 보안 인텔리전스를 표시합니다. 다른 사람이 PC의 보안 설정을 바꾼 뒤에 확인할 가치가 있습니다. Defender가 아닌 CPU 사용은 [Windows의 높은 CPU 사용량](/ko/windows/blog/windows-high-cpu-usage)을, 디스크가 100%에 멈춘 경우는 [작업 관리자의 디스크 100%](/ko/windows/blog/windows-disk-100-percent)를 봅니다.

## 자주 묻는 질문

### Antimalware Service Executable이 바이러스입니까?

진짜 프로세스는 Windows의 일부인 Microsoft Defender Antivirus, `MsMpEng.exe`입니다. 그것으로 인한 높은 CPU는 보통 스캔입니다. 보호 기록에 탐지가 있으면 그 항목을 다룹니다.

### 아무것도 하지 않는데 Antimalware Service Executable이 CPU를 많이 쓰는 이유는 무엇입니까?

예약된 스캔은 PC가 유휴일 때 실행되고, Defender는 기본적으로 보안 인텔리전스 업데이트 뒤에도 스캔합니다. 빠른 검사는 보통 스스로 끝나고, 전체 검사는 몇 시간이 걸릴 수 있습니다.

### Antimalware Service Executable을 꺼도 됩니까?

안전하게 끌 수는 없습니다. 실시간 보호를 끄는 것은 일시적이며 Windows가 다시 켭니다. 정책이나 스크립트로 영구적으로 끄면 파일이 스캔되지 않습니다. 스캔 일정을 바꾸거나 Dev Drive를 사용합니다.

### Microsoft Defender의 높은 CPU를 고치려고 제외를 추가해야 합니까?

신뢰하는 도구만 쓰는 좁은 폴더, 예를 들어 빌드 출력에만 해당합니다. Microsoft는 제외가 보호를 줄인다고 경고합니다. 다운로드, 바탕 화면, 드라이브 전체를 제외하지 마세요.


Canonical: https://mole.fit/ko/windows/blog/antimalware-service-executable-high-cpu
