windows服务器的Antimalware Service Executable服务cpu使用率高达60%多,什么原因导致的?如何解决
当 Windows 服务器(如 Windows Server 2016/2019/2022) 上的 Antimalware Service Executable(MsMpEng.exe) CPU 占用率高达 60% 甚至更高时,这通常表示 Windows Defender(微软防病毒服务)正在执行密集任务。以下是详细原因分析与解决方法????
一、主要原因分析
| 原因类型 | 详细说明
1. 实时防护扫描过多 | Windows Defender 实时保护在监控所有文件的读写和执行操作。如果服务器上有大量文件操作(例如 Web 服务器、数据库服务器、文件共享服务器),Defender 会反复扫描这些文件。 |
2. 后台全盘扫描正在进行 | Defender 可能正在执行计划任务(如快速或完整扫描),尤其是在系统空闲时自动触发。 |
3. 特定文件夹/进程频繁变动 | 日志文件、临时文件夹(如 `C:WindowsTemp`、`C:inetpublogs`)等频繁更新,会导致 Defender 不断重复扫描。 |
4. 第三方软件冲突 | 某些安全软件(如 McAfee、Symantec、ESET)与 Defender 并行运行,会导致 CPU 占用剧增。 |
5. Defender 病毒定义损坏或异常 | 当签名文件损坏或扫描数据库出错时,会导致扫描循环或异常占用。 |
6. Hyper-V / SQL Server / IIS 高IO负载 | 如果服务器运行虚拟机、数据库或网站,Defender 默认也会扫描这些运行文件,导致CPU飙升。 |
二、解决方案(从温和到强力)
1. 检查是否在执行扫描任务
打开 PowerShell(管理员权限):
powershell
Get-MpComputerStatus | Select AMRunningMode, FullScanInProgress, QuickScanInProgress
如果 `FullScanInProgress` 或 `QuickScanInProgress` 为 `True`,说明 Defender 正在扫描,可临时暂停:
powershell
Stop-MpScan
2. 为高IO目录添加排除项(最有效方法)
排除不需要实时扫描的文件夹、进程或扩展名,例如:
* 数据目录:`C:ProgramDataMicrosoftWindowsDefender`
* IIS 日志目录:`C:inetpublogs`
* SQL 数据库文件:`.mdf`, `.ldf`
* 虚拟机镜像:`.vhd`, `.vhdx`
* 临时缓存:`C:WindowsTemp`
PowerShell 添加排除示例:
powershell
Add-MpPreference -ExclusionPath "C:inetpublogs", "C:WindowsTemp"
Add-MpPreference -ExclusionExtension ".mdf", ".ldf", ".vhdx"
Add-MpPreference -ExclusionProcess "sqlservr.exe", "vmwp.exe", "w3wp.exe"
3. 禁用实时保护(仅在特定场景临时使用)
不建议长期关闭防护。
PowerShell:
powershell
Set-MpPreference -DisableRealtimeMonitoring $true
如需恢复:
powershell
Set-MpPreference -DisableRealtimeMonitoring $false
4. 检查更新与定义文件状态
更新 Defender 定义文件(防止旧版本扫描异常):
powershell
Update-MpSignature
5. 通过组策略永久优化扫描行为
打开 gpedit.msc:
计算机配置 → 管理模板 → Windows 组件 → Microsoft Defender 防病毒 → 扫描
建议调整:
* 限制CPU使用率 → 设置为 30%
* 禁用计划的完整扫描
* 启用排除路径
6. 考虑使用轻量防护策略或第三方防病毒
如果该服务器为 数据库 / Web / 虚拟化环境,建议:
* 使用 Defender 仅保留基本实时保护;
* 或禁用 Defender,改用专门为服务器设计的安全套件(如 Trend Micro ServerProtect、ESET Server Security 等)。
7. 分析具体进程和文件活动(高级)
可用 `Process Explorer` 或 `Resource Monitor`:
1. 查看 `MsMpEng.exe` 打开的文件;
2. 判断是否重复扫描某类文件;
3. 对这些目录设置排除。
三、快速实用方案汇总
| 目标 | 操作 |
| 临时降低CPU占用 | `Stop-MpScan` |
| 永久优化性能 | 添加排除路径/进程 |
| 检查是否异常扫描 | `Get-MpComputerStatus` |
| 限制CPU使用率 | GPO中限制为30% |
| 定期维护 | 定时更新定义、重启Defender服务 |
共 1 页 1 条数据

