Windows Server 2019でAntimalware Service ExecutableによるCPU使用率が高騰し、サーバーのパフォーマンスが低下すると大変困りますよね。本記事では、セキュリティを守りつつ問題を解消する効果的な方法をわかりやすく解説します。ぜひ最後まで読んで、日々の運用に役立ててください。
Windows Server 2019におけるAntimalware Service Executable高負荷問題の背景
Windows Server 2019の標準ウイルス対策として機能するのが「Windows Defender」であり、その主要プロセスが「Antimalware Service Executable(MsMpEng.exe)」です。通常であれば、リアルタイム保護やスケジュールスキャンによりシステムを監視・保護してくれます。しかし、何らかの理由でプロセスの負荷が高まり、CPU使用率が100%近く張り付いてしまう問題が報告されています。業務サーバーでこうした状況が発生すると、アプリケーションの処理が滞り、リモートデスクトップ接続が途切れたり、全体のパフォーマンスが大幅に低下する恐れがあります。
ウイルス対策ソフトはセキュリティの要ですが、過度なCPU消費で業務に支障をきたすようでは本末転倒です。そこで、セキュリティリスクを最小限に留めつつ、CPU使用率の高止まりを抑制するための具体策を順を追って見ていきましょう。
高CPU使用率の主な原因
Windows Defenderが極端にCPUを占有する場合には、いくつかの要因が考えられます。ここでは主だった原因を挙げ、どのようなメカニズムで問題が発生するのかを簡単に整理します。
1. スケジュールスキャンの設定ミス
スケジュールスキャンが頻回に実行されていたり、実行のタイミングが本番サーバーの稼働ピーク時と重なっていたりすると、CPUとディスクI/Oに大きな負荷がかかり、結果的にサーバー全体のパフォーマンスを損なう可能性があります。
2. リアルタイム保護の過剰動作
リアルタイム保護が細かいファイルやフォルダ、あるいはバックアップやログ収集の際に生成されるファイルなどを過剰に監視していると、Antimalware Service ExecutableのCPU負荷が高まりやすくなります。
3. システム環境要因や他プログラムとの競合
他のセキュリティソフトウェアや管理エージェントが導入されている環境では、Defenderとの競合が発生してプロセスが高負荷となる場合があります。また、メモリやディスク容量が不足していると、スキャン処理が遅延・再試行を繰り返しCPUリソースを大量消費する原因となります。
問題解決のアプローチ一覧
ここでは問題を解決するためのアプローチを段階的にご紹介します。必ずしも全てを実行する必要はありませんが、環境に合わせて適宜組み合わせてみてください。
ステップ1:クリーンブートによる影響範囲の確認
Windows Server 2019におけるサービスやスタートアッププログラムの影響を切り分けるためには、クリーンブートが有効です。不要なプログラムやサービスを極力起動させずに、Windows Defenderの動作状況を観察することで、競合要因の有無を判定しやすくなります。
クリーンブートの手順
以下はクリーンブートを行う一般的な手順です。実施の際にはサーバー運用への影響を十分に考慮し、メンテナンス時間帯や検証環境で行うことが望ましいでしょう。
- 「Windows + R」を押して「msconfig」と入力し、システム構成を起動
- [サービス]タブを開き、「Microsoftのサービスを隠す」にチェックを入れる
- 「すべて無効」を選択し、不要なサービスを停止
- [スタートアップ]タブを開き、必要最低限のプログラム以外をタスクマネージャーから無効化
- サーバーを再起動し、CPU使用率をモニタリング
この状態でAntimalware Service ExecutableによるCPU使用率が下がるようであれば、第三者製のサービスやスタートアッププログラムとの競合が原因の一端となっている可能性が高いです。
ステップ2:Windows Defenderの設定最適化
Windows Defenderのスケジュールスキャンや条件設定を見直すことで、CPU使用率を低減できる場合があります。以下のステップで設定を見直してみましょう。
スケジュールタスクの確認と調整
- 「Windows + R」を押して「taskschd.msc」と入力し、タスクスケジューラを起動
- [タスク スケジューラ ライブラリ] → [Microsoft] → [Windows] → [Windows Defender] → 「Windows Defender Scheduled Scan」をダブルクリック
- [全般]タブで「最も高い権限で実行する」のチェックを外す
- [条件]タブのチェック(「コンピューターがアイドル状態の時のみ開始する」など)をすべて外す
- OKを押して設定を保存
この設定変更により、タスク実行権限や条件が簡略化されることで、不要なタイミングでのスキャンが抑制される可能性があります。
タイミングと頻度の調整
スケジュールスキャンのタイミングは本番稼働が最も少ない時間帯を選ぶと負荷を軽減しやすくなります。たとえば深夜帯に実行されるように設定しておき、しかも週末にまとめて実施するなど、業務時間帯と重ならないタイミングを計画的に決めるのが望ましいでしょう。
ステップ3:手動スキャンと除外設定
Windows Defenderでは特定のフォルダやファイルをスキャン対象から除外できます。除外設定をうまく活用することで、高負荷の原因となる不要なスキャンを回避できる場合があります。
手動スキャンによるウイルスチェック
まずは手動スキャンでシステム全体をチェックしましょう。これによってマルウェアが潜在的な原因である場合を排除できます。手動スキャンの結果、脅威が検出されなければ、除外設定を行う際に「どのフォルダやファイルを守るべきか」「どこを除外すべきか」をより正確に判断できます。
除外設定の基本
除外リストを設定するには、以下の手順を参考にしてください。
- [スタート] → [設定] → [更新とセキュリティ] → [Windows セキュリティ] → [ウイルスと脅威の防止]を開く
- [ウイルスと脅威の防止の設定]から[設定の管理]を選択
- 下の方にスクロールすると[除外](Exclusions)の項目があるので、[除外の追加または削除]をクリック
- フォルダまたはファイルを追加して除外登録
サーバー運用において、ログディレクトリやキャッシュディレクトリなど、内容確認の必要性が低いフォルダを除外対象にすることで、余計なファイルアクセスを減らすことができます。とはいえ、除外対象を増やしすぎるとセキュリティリスクが高まるため、運用ポリシーと照らし合わせながら慎重に設定を行うことが重要です。
リアルタイム保護の調整と最終手段
どうしても高CPU使用率が改善しない場合、リアルタイム保護を一時的に無効化したり、最終手段としてWindows Defender自体をアンインストールする選択肢も考えられます。ただし、これらはセキュリティリスクを伴うため、緊急措置の位置づけになります。
リアルタイム保護の一時無効化
リアルタイム保護はファイル操作のたびにスキャンを走らせるため、高負荷の原因になりやすい側面があります。以下のPowerShellコマンドで一時的にリアルタイム保護を無効化できます。
Set-MpPreference -DisableRealtimeMonitoring $true
ただし、この設定を適用すると、ウイルス等の脅威をリアルタイムで検知できなくなるためリスクが高まります。セキュリティを保つためには、オフにしている時間を最小限にすること、あるいは他のウイルス対策ソフトによる補完を検討すべきでしょう。
Windows Defenderのアンインストール
他社製アンチウイルス製品をすでに導入しており、Defenderが競合要因として働いている可能性が高い場合には、Defenderをアンインストールする方法もあります。PowerShellで以下のコマンドを実行し、Windows Defenderの機能を削除できます。
Get-WindowsFeature *defender* | Remove-WindowsFeature
しかし、Windows DefenderはOS標準で用意され、Microsoftが継続的に更新・サポートしている堅牢なセキュリティソリューションです。アンインストールによって保護レイヤーが薄れたり、ライセンス費用が別途必要となる場合もあるため、慎重な検討が必要です。必ず別の信頼できるセキュリティソフトや保護手段を用意してから実行するようにしましょう。
より安全に運用するためのヒント
ここでは、トラブルシュートを進めるうえで知っておきたいいくつかのヒントを紹介します。Windows Defenderの調整や無効化はサーバー全体のセキュリティポリシーに大きく関わるため、こうしたポイントを踏まえて運用することをおすすめします。
検証環境でのテストの実施
本番サーバー上で直接設定変更を行うのはリスクが伴います。可能であれば検証用のステージングサーバーなどを用意し、そこに同様の設定を適用して負荷テストや障害発生リスクの有無を確認しましょう。
Windows Updateの最新化
Defenderの定義ファイルが古いと、正しくウイルス定義が適用されないばかりか、アップデートを無理やり繰り返そうとしてCPUを占有するリスクがあります。Windows Updateを定期的に適用し、Defenderエンジンや定義ファイルを最新の状態に保つことは基本中の基本です。
他のリソース使用状況もモニタリング
CPU使用率の高さばかりに目が行きがちですが、メモリ使用量やディスクI/O、ネットワーク使用量なども併せて監視することで、総合的なボトルネックを特定しやすくなります。Windows Serverのパフォーマンスモニターやイベントビューアを活用し、関連ログやリソース使用状況の傾向を随時チェックしましょう。
設定項目の比較表
以下に、Windows Defenderの代表的な設定項目と、それぞれがパフォーマンスおよびセキュリティに与える影響をまとめた簡単な比較表を示します。運用方針を決める際の参考にしてみてください。
| 項目 | 内容 | パフォーマンス負荷 | セキュリティリスク |
|---|---|---|---|
| リアルタイム保護 | ファイルアクセスごとにスキャンを行う | 高め | 低い (常時保護) |
| スケジュールスキャン | 指定した日時や条件で定期的にスキャンを実施 | 中〜高 | 中 (一部時間のみ) |
| タスクスケジューラの条件設定 | アイドル時など、CPUやI/Oに余裕があるタイミングでのみスキャンを実行するなど | 中 | 低い |
| 除外設定 | 特定のファイルやフォルダをスキャン対象から外す | 低 (除外が多いほど負荷減) | 高い (除外範囲が大きい) |
| リアルタイム保護の無効化 | リアルタイムスキャンを停止 | 低い | 高い (防御なし) |
| Windows Defenderアンインストール | Defender自体を削除 | なし (他の製品がなければ負荷なし) | 極めて高い (防御策を別途用意要) |
ご覧のように、負荷を低減するにはリアルタイム保護をオフにするのが最も効果的ですが、セキュリティリスクが跳ね上がることがお分かりいただけるでしょう。そのため、まずはスケジュールスキャンの調整や除外設定で様子を見て、リスクを最小化しながら改善を図るのがベストプラクティスといえます。
まとめ
Windows Server 2019上でAntimalware Service Executableが高CPU使用率を占有する問題は、設定の見直しや適切な運用手段を取ることで多くの場合は解消できる、または大幅に緩和することができます。具体的には以下のステップを押さえておくと良いでしょう。
- クリーンブートによる検証
競合要因を洗い出すための第一歩。ほかのプログラムやサービスがDefenderと干渉していないかを確認。 - Windows Defenderの設定調整
スケジュールスキャンの時間帯をオフピークに設定し、条件や権限の設定を見直す。 - 除外設定と手動スキャンの活用
不要なスキャンを減らしながら、重要な部分だけをしっかり守るバランスを取る。 - リアルタイム保護の無効化やアンインストール(最終手段)
極端に高負荷が解消しない場合の最後の選択肢。必ず代替策やリスク対策を用意。
これらを踏まえ、実運用に入る前にテスト環境で必ず確認し、万一のセキュリティ事故を防止するための保険をかけながら設定を行うのが重要です。サーバーの目的や稼働時間帯、導入している他のシステムなどを総合的に判断し、最適な設定を実現することで、Windows Server 2019をストレスなく、安全に利用できるようになります。

コメント