Microsoft Defender 바이러스 백신에 대한 성능 분석기

적용 대상

플랫폼

  • Windows

요구 사항

Microsoft Defender 바이러스 백신 성능 분석기는 다음과 같은 필수 구성 요소가 있습니다.

  • 지원되는 Windows 버전: 최신 통합 솔루션 및 Windows Server 2016 이상과 함께 Windows 10, Windows 11, Windows 2012 R2
  • 플랫폼 버전: 4.18.2108.7 이상
  • PowerShell 버전: PowerShell 버전 5.1, PowerShell ISE, 원격 PowerShell(4.18.2201.10 이상), PowerShell 7.x(4.18.2201.10 이상)

Microsoft Defender 바이러스 백신 성능 분석기가란?

Microsoft Defender 바이러스 백신을 실행하는 컴퓨터에 성능 문제가 발생하는 경우 성능 분석기를 사용하여 Microsoft Defender 바이러스 백신의 성능을 향상시킬 수 있습니다. Windows 10, Windows 11 및 Windows Server의 Microsoft Defender 바이러스 백신에 대한 성능 분석기는 바이러스 백신 검사 중에 개별 엔드포인트에서 성능 문제를 일으킬 수 있는 파일, 파일 확장명 및 프로세스를 확인하는 데 도움이 되는 PowerShell 명령줄 도구입니다. 성능 분석기에서 수집한 정보를 사용하여 성능 문제를 평가하고 수정 작업을 적용할 수 있습니다.

성능 문제가 있는 차량에서 메커니즘이 진단 및 서비스를 수행하는 방식과 마찬가지로 성능 분석기는 Defender 바이러스 백신 성능을 개선하는 데 도움이 될 수 있습니다.

Microsoft Defender 바이러스 백신에 대한 개념적 성능 분석기 이미지입니다. 다이어그램은 Microsoft Defender 성능 분석기, Defender 성능 분석기, Get-MpPerformanceRepor, New-MpPerformanceRecording, windows Defender, microsoft Defender, microsoft Windows 10, Microsoft Defender 바이러스 백신, 마이크로 소프트 Windows 11, Windows 바이러스 백신, microsoft 바이러스 백신, windows Defender 바이러스 백신, Windows 10 microsoft windows Defender, 성능과 관련이 있습니다. Windows.

분석할 수 있는 몇 가지 옵션은 다음과 같습니다.

  • 검사 시간에 영향을 주는 상위 경로
  • 스캔 시간에 영향을 주는 상위 파일
  • 검사 시간에 영향을 주는 주요 프로세스
  • 스캔 시간에 영향을 주는 상위 파일 확장자
  • 조합 – 예를 들면 다음과 같습니다.
    • 확장 프로그램당 상위 파일 수
    • 확장당 상위 경로
    • 경로당 상위 프로세스
    • 파일당 상위 검사
    • 프로세스당 파일당 상위 검사

성능 분석기 실행

성능 분석기를 실행하기 위한 고급 프로세스에는 다음 단계가 포함됩니다.

  1. 성능 분석기를 실행하여 엔드포인트에서 Microsoft Defender 바이러스 백신 이벤트의 성능 기록을 수집합니다.

    참고

    Microsoft-Antimalware-Engine 유형의 Microsoft Defender 바이러스 백신 이벤트의 성능은 성능 분석기를 통해 기록됩니다.

  2. 다른 기록 보고서를 사용하여 검사 결과를 분석합니다.

성능 분석기 사용

시스템 이벤트 기록을 시작하려면 관리 모드에서 PowerShell을 열고 다음 단계를 수행합니다.

  1. 다음 명령을 실행하여 기록을 시작합니다.

    New-MpPerformanceRecording -RecordTo <recording.etl>
    

    where -RecordTo 매개 변수는 추적 파일이 저장되는 전체 경로 위치를 지정합니다. 자세한 cmdlet 정보는 바이러스 백신 cmdlet Microsoft Defender 참조하세요.

  2. 성능에 영향을 주는 것으로 생각되는 프로세스 또는 서비스가 있는 경우 관련 작업을 수행하여 상황을 재현합니다.

  3. Enter 키를 눌러 기록을 중지하고 저장하거나 Ctrl+C를 눌러 녹음/녹화를 취소합니다.

  4. 성능 분석기 Get-MpPerformanceReport 매개 변수를 사용하여 결과를 분석합니다. 예를 들어 명령을 Get-MpPerformanceReport -Path <recording.etl> -TopFiles 3 -TopScansPerFile 10실행할 때 성능에 영향을 주는 상위 3개 파일에 대한 상위 10개 검색 목록이 사용자에게 제공됩니다.

명령줄 매개 변수 및 옵션에 대한 자세한 내용은 New-MpPerformanceRecordingGet-MpPerformanceReport를 참조하세요.

참고

녹음/녹화를 실행할 때 "Windows 성능 레코더가 이미 기록 중이므로 성능 기록을 시작할 수 없습니다"라는 오류가 표시되면 다음 명령을 실행하여 새 명령을 사용하여 기존 추적을 중지합니다. wpr -cancel -instancename MSFT_MpPerformanceRecording

성능 조정 데이터 및 정보

쿼리에 따라 사용자는 검사 수, 기간(총/최소/평균/최대/중앙값), 경로, 프로세스 및 검사 이유에 대한 데이터를 볼 수 있습니다. 다음 이미지는 검사 영향에 대한 상위 10개 파일의 간단한 쿼리에 대한 샘플 출력을 보여줍니다.

기본 TopFiles 쿼리에 대한 예제 출력

추가 기능: CSV 및 JSON 내보내기 및 변환

성능 분석기의 결과를 내보내고 CSV 또는 JSON 파일로 변환할 수도 있습니다. 샘플 코드를 통해 "내보내기" 및 "변환" 프로세스를 설명하는 예제는 다음 섹션을 참조하세요.

Defender 버전 4.18.2206.X부터 사용자는 "SkipReason" 열에서 검사 건너뛰기 이유 정보를 볼 수 있습니다. 가능한 값은 다음과 같습니다.

  • 건너뛰지 않음
  • 최적화(일반적으로 성능상의 이유로 인해)
  • 사용자가 건너뛰었다(일반적으로 사용자 집합 제외로 인해)

CSV의 경우

  • 내보내려면 다음을 수행합니다.
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 1000).TopScans | Export-CSV -Path .\Repro-Install-Scans.csv -Encoding UTF8 -NoTypeInformation
  • 변환하려면 다음을 수행합니다.
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 100).TopScans | ConvertTo-Csv -NoTypeInformation

JSON의 경우

  • 변환하려면 다음을 수행합니다.
(Get-MpPerformanceReport -Path .\Repro-Install.etl -Topscans 1000).TopScans | ConvertTo-Json -Depth 1

다른 데이터 처리 시스템으로 내보낼 때 컴퓨터에서 읽을 수 있는 출력을 보장하려면 에 매개 Get-MpPerformanceReport변수를 사용하는 -Raw 것이 좋습니다. 자세한 내용은 다음 섹션을 참조하세요.

PowerShell 참조

Microsoft Defender 바이러스 백신의 성능을 조정하는 데 사용되는 두 가지 새로운 PowerShell cmdlet이 있습니다.

New-MpPerformanceRecording

다음 섹션에서는 새 PowerShell cmdlet New-MpPerformanceRecording에 대한 참조를 설명합니다. 이 cmdlet은 Microsoft Defender 바이러스 백신 검사의 성능 기록을 수집합니다.

구문: New-MpPerformanceRecording

New-MpPerformanceRecording -RecordTo <String>

설명: New-MpPerformanceRecording

cmdlet은 New-MpPerformanceRecording Microsoft Defender 바이러스 백신 검사의 성능 기록을 수집합니다. 이러한 성능 기록에는 Microsoft-Antimalware-Engine 및 NT 커널 프로세스 이벤트가 포함되며 Get-MpPerformanceReport cmdlet을 사용하여 컬렉션 후에 분석할 수 있습니다.

New-MpPerformanceRecording cmdlet은 Microsoft Defender 바이러스 백신의 성능 저하를 일으킬 수 있는 문제가 있는 파일에 대한 인사이트를 제공합니다. 이 도구는 "AS IS"로 제공되며 제외에 대한 제안을 제공하기 위한 것이 아닙니다. 제외는 엔드포인트의 보호 수준을 줄일 수 있습니다. 제외(있는 경우)는 주의해서 정의해야 합니다.

성능 분석기에 대한 자세한 내용은 성능 분석기 문서를 참조하세요.

중요

이 cmdlet에는 관리자 권한이 필요합니다.

예: New-MpPerformanceRecording

예제 1: 성능 기록 수집 및 저장
New-MpPerformanceRecording -RecordTo .\Defender-scans.etl

위의 명령은 성능 기록을 수집하고 지정된 경로 인 .\Defender-scans.etl에 저장합니다.

예제 2: 원격 PowerShell 세션에 대한 성능 기록 수집
$s = New-PSSession -ComputerName Server02 -Credential Domain01\User01
New-MpPerformanceRecording -RecordTo C:\LocalPathOnServer02\trace.etl -Session $s

위의 명령은 Server02에서 성능 기록을 수집하고(매개 변수 세션의 인수 $s 지정한 대로) Server02의 C:\LocalPathOnServer02\trace.etl 경로에 저장합니다.

매개 변수: New-MpPerformanceRecording

-RecordTo

Microsoft Defender 맬웨어 방지 성능 기록을 저장할 위치를 지정합니다.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-세션

Microsoft Defender 바이러스 백신 성능 기록을 만들고 저장할 PSSession 개체를 지정합니다. 이 매개 변수를 사용하는 경우 RecordTo 매개 변수는 원격 컴퓨터의 로컬 경로를 참조합니다. Defender 플랫폼 버전 4.18.2201.10에서 사용할 수 있습니다.

Type: PSSession[]
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Get-MpPerformanceReport

다음 섹션에서는 Get-MpPerformanceReport PowerShell cmdlet에 대해 설명합니다. Microsoft Defender 바이러스 백신 성능 기록을 분석하고 보고합니다.

구문: Get-MpPerformanceReport

Get-MpPerformanceReport [-Path] <String>
    [-TopScans [<Int32>]]
    [-TopPaths [<Int32>] [-TopPathsDepth [<Int32>]]]
            [-TopScansPerPath [<Int32>]]
            [-TopFilesPerPath [<Int32>]
                    [-TopScansPerFilePerPath [<Int32>]]
                    ]
            [-TopExtensionsPerPath [<Int32>]
                    [-TopScansPerExtensionPerPath [<Int32>]]
                    ]
            [-TopProcessesPerPath [<Int32>]
                    [-TopScansPerProcessPerPath [<Int32>]]
                    ]
            ]
    [-TopFiles [<Int32>]
            [-TopScansPerFile [<Int32>]]
            [-TopProcessesPerFile [<Int32>]
                    [-TopScansPerProcessPerFile [<Int32>]]
                    ]
            ]
    [-TopExtensions [<Int32>]
            [-TopScansPerExtension [<Int32>]
            [-TopPathsPerExtension [<Int32>] [-TopPathsDepth [<Int32>]]
                    [-TopScansPerPathPerExtension [<Int32>]]
                    ]
            [-TopProcessesPerExtension [<Int32>]
                    [-TopScansPerProcessPerExtension [<Int32>]]
                    ]
            [-TopFilesPerExtension [<Int32>]
                    [-TopScansPerFilePerExtension [<Int32>]]
                    ]
            ]
    [-TopProcesses [<Int32>]
            [-TopScansPerProcess [<Int32>]]
            [-TopExtensionsPerProcess [<Int32>]
                    [-TopScansPerExtensionPerProcess [<Int32>]]
                    ]
            [-TopPathsPerProcess [<Int32>] [-TopPathsDepth [<Int32>]]
                    [-TopScansPerPathPerProcess [<Int32>]]
                    ]
            [-TopFilesPerProcess [<Int32>]
                    [-TopScansPerFilePerProcess [<Int32>]]
                    ]
            ]
    [-MinDuration <String>]
    [-Raw]

설명: Get-MpPerformanceReport

cmdlet은 Get-MpPerformanceReport 이전에 수집된 Microsoft Defender 바이러스 백신 성능 기록(New-MpPerformanceRecording)을 분석하고 Microsoft Defender 바이러스 백신 검사에 가장 큰 영향을 주는 파일 경로, 파일 확장명 및 프로세스를 보고합니다.

성능 분석기는 Microsoft Defender 바이러스 백신의 성능 저하를 일으킬 수 있는 문제가 있는 파일에 대한 인사이트를 제공합니다. 이 도구는 "AS IS"로 제공되며 제외에 대한 제안을 제공하기 위한 것이 아닙니다. 제외는 엔드포인트의 보호 수준을 줄일 수 있습니다. 제외(있는 경우)는 주의해서 정의해야 합니다.

성능 분석기에 대한 자세한 내용은 성능 분석기 문서를 참조하세요.

지원되는 OS 버전:

Windows 버전 10 이상.

참고

이 기능은 플랫폼 버전 4.18.2108.X 이상부터 사용할 수 있습니다.

예: Get-MpPerformanceReport

예제 1: 단일 쿼리
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopScans 20
예제 2: 여러 쿼리
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopFiles 10 -TopExtensions 10 -TopProcesses 10 -TopScans 10
예제 3: 중첩된 쿼리
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopProcesses 10 -TopExtensionsPerProcess 3 -TopScansPerExtensionPerProcess 3
예제 4: -MinDuration 매개 변수 사용
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopScans 100 -MinDuration 100ms
예제 5: -Raw 매개 변수 사용
Get-MpPerformanceReport -Path .\Defender-scans.etl -TopFiles 10 -TopExtensions 10 -TopProcesses 10 -TopScans 10 -Raw | ConvertTo-Json

위의 명령에서 -Raw를 사용하면 출력이 컴퓨터에서 읽을 수 있고 JSON과 같은 serialization 형식으로 쉽게 변환할 수 있도록 지정합니다.

매개 변수: Get-MpPerformanceReport

-TopPaths

최상위 경로 보고서를 요청하고 기간별로 정렬된 출력할 상위 경로 수를 지정합니다. 해당 경로 및 디렉터리에 따라 검사를 집계합니다. 사용자는 각 수준에 표시해야 하는 디렉터리 수와 선택 영역의 깊이를 지정할 수 있습니다.

- Type: Int32
- Position: Named
- Default value: None
- Accept pipeline input: False
- Accept wildcard characters: False
-TopPathsDepth

집계된 경로 결과를 그룹화하고 표시하는 데 사용되는 재귀 깊이를 지정합니다. 예를 들어 "C:"는 깊이 1에 해당하고, "C:\Users\Foo"는 깊이 3에 해당합니다.

이 플래그는 다른 모든 상위 경로 옵션과 함께 사용할 수 있습니다. 누락된 경우 기본값인 3이 가정됩니다. 값은 0일 수 없습니다.

- Type: Int32
- Position: Named
- Default value: 3
- Accept pipeline input: False
- Accept wildcard characters: False
플래그 정의
-TopScansPerPath 각 상위 경로에 대해 지정할 상위 검사 수를 지정합니다.
-TopFilesPerPath 각 상위 경로에 대해 지정할 상위 파일 수를 지정합니다.
-TopScansPerFilePerPath "기간"을 기준으로 정렬된 각 상위 경로의 각 상위 파일에 대해 출력할 상위 검사 수를 지정합니다.
-TopExtensionsPerPath 각 상위 경로에 대해 출력할 상위 확장 수를 지정합니다.
-TopScansPerExtensionPerPath 각 상위 경로의 각 상위 확장에 대해 출력할 상위 검사 수를 지정합니다.
-TopProcessesPerPath 각 상위 경로에 대해 출력할 상위 프로세스 수를 지정합니다.
-TopScansPerProcessPerPath 각 상위 경로의 각 상위 프로세스에 대해 출력할 상위 검사 수를 지정합니다.
-TopPathsPerExtension 각 상위 확장에 대해 출력할 상위 경로 수를 지정합니다.
-TopScansPerPathPerExtension 각 상위 확장의 각 상위 경로에 대해 출력할 상위 검사 수를 지정합니다.
-TopPathsPerProcess 각 상위 프로세스에 대해 출력할 상위 경로 수를 지정합니다.
-TopScansPerPathPerProcess 각 상위 프로세스의 각 상위 경로에 대해 출력할 상위 검사 수를 지정합니다.
-MinDuration

보고서에 포함된 파일, 확장명 및 프로세스의 검사 또는 총 검사 기간의 최소 기간을 지정합니다. 는 0.1234567초, 0.1234ms, 0.1us 또는 유효한 TimeSpan과 같은 값을 허용합니다.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-경로

하나 이상의 위치에 대한 경로 또는 경로를 지정합니다.

Type: String
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False
-원시

성능 기록의 출력은 컴퓨터에서 읽을 수 있고 JSON과 같은 직렬화 형식으로 쉽게 변환할 수 있도록 지정합니다(예: Convert-to-JSON 명령을 통해). 이 구성은 다른 데이터 처리 시스템과의 일괄 처리에 관심이 있는 사용자에게 권장됩니다.

Type: <SwitchParameter>
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-TopExtensions

출력할 상위 확장 수를 기간별로 정렬하여 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopExtensionsPerProcess

기간별로 정렬된 각 상위 프로세스에 대해 출력할 상위 확장 수를 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopFiles

상위 파일 보고서를 요청하고 출력할 상위 파일 수를 기간별로 정렬합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopFilesPerExtension

각 상위 확장에 대해 출력할 상위 파일 수를 Duration별로 정렬하여 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopFilesPerProcess

각 상위 프로세스에 대해 출력할 상위 파일 수를 기간별로 정렬하여 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopProcesses

최상위 프로세스 보고서를 요청하고 출력할 상위 프로세스 수를 기간별로 정렬합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopProcessesPerExtension

기간별로 정렬된 각 상위 확장에 대해 출력할 상위 프로세스 수를 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopProcessesPerFile

기간별로 정렬된 각 상위 파일에 대해 출력할 상위 프로세스 수를 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScans

상위 검사 보고서를 요청하고 출력할 상위 검사 수를 기간별로 정렬합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerExtension

기간별로 정렬된 각 상위 확장에 대해 출력할 상위 검사 수를 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerExtensionPerProcess

기간별로 정렬된 각 상위 프로세스의 각 상위 확장에 대해 출력할 상위 검사 수를 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerFile

기간별로 정렬된 각 상위 파일에 대해 출력할 상위 검사 수를 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerFilePerExtension

기간별로 정렬된 각 상위 확장명의 각 상위 파일에 대해 출력할 상위 검사 수를 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerFilePerProcess

기간별로 정렬된 각 상위 프로세스에 대한 각 상위 파일의 출력에 대한 상위 검사 수를 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerProcess

기간별로 정렬된 상위 프로세스 보고서의 각 상위 프로세스에 대해 출력할 상위 검사 수를 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerProcessPerExtension

기간별로 정렬된 각 상위 확장의 각 상위 프로세스에 대한 출력에 대한 상위 검사 수를 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TopScansPerProcessPerFile

기간별로 정렬된 각 상위 파일의 각 상위 프로세스에 대한 출력에 대한 상위 검사 수를 지정합니다.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

추가 리소스

다른 플랫폼에 대한 바이러스 백신 관련 정보를 찾고 있는 경우 다음을 참조하세요.

더 자세히 알아보고 싶으신가요? 기술 커뮤니티: 엔드포인트용 Microsoft Defender Tech Community의 Microsoft 보안 커뮤니티와 Engage.