Windows 10でNtoskrnl.exe(System)プロセスのCPU使用率が高くなる原因と診断・対処法
Windows 10でSystem(ntoskrnl.exe)プロセスのCPU使用率が50%超になる問題
Windows 10を新規インストールしたパソコンで、OSが頻繁にフリーズしたり動作が極端に遅くなったりするという相談がありました。タスクマネージャーを確認すると、CPUリソースの約50%がSystem(ntoskrnl.exe)プロセスによって消費されていました。本記事では、プロセスによる高いCPU使用率を診断する主な方法と、問題となっているWindowsコンポーネントやシステムドライバーを特定する手順を解説します。
ntoskrnl.exeとは?なぜCPU使用率が高くなるのか
SystemプロセスがシステムのCPUリソースの半分以上を消費している状態は、明らかに異常です。Ntoskrnl.exeはOSカーネルの実行ファイルであり、Windowsの中核を担う最重要のシステムプロセスです。OSカーネルはデバイスのシステムドライバーを実行しており、このドライバーこそが問題の発生源である可能性が高いといえます(ハードウェアベンダーがすべてのドライバーを十分にテストしているわけではないためです)。
一般的に、ドライバーコードのリークやCPU・メモリ・ディスクへの高負荷といった問題は、次のようなタイミングで発生しやすくなります。
- 新しいハードウェアの取り付け後
- 新しいドライバーバージョンの適用後(自動ドライバー更新も含む。自動更新は無効化可能)
- Windows Updateの適用後
ヒント:場合によっては、「圧縮メモリ(Compressed Memory)」プロセスがCPUやメモリに高い負荷をかけることもあります。
Process Explorerで原因ドライバーを特定する
どのドライバーやモジュールが高いCPU使用率を引き起こしているのかを調べるには、無料ツールProcess Explorerが便利です。ダウンロードして管理者として実行してください。
実行中のプロセス一覧からSystemを見つけ、右クリックしてProperties(プロパティ)を開きます。
Threads(スレッド)タブに移動し、カーネルに読み込まれたモジュールの一覧をCPU使用率(CPU列)で並べ替えます。Start Address(開始アドレス)列に、高負荷の原因となっているコンポーネントやドライバーの名前が表示されます。
kernrate.exeでカーネルモードの負荷を分析する
CPU負荷の原因ドライバーを特定するもう一つの方法として、Microsoftの無料ツールkernrate.exe(Kernrate Viewer)が利用できます。このツールはWDK(Windows Driver Kit)に含まれており、WDKのインストール後は「…\Tools\Other\amd64」フォルダ内に格納されています。
パラメーターなしでkernrate.exeを実行し、データ収集が完了するまで10〜15分ほど待ちます。その後Ctrl-Cでツールを終了し、「Result for Kernel Mode」セクションのモジュール一覧を確認しましょう。
この例では、b57nd60xモジュールが高いCPU使用率の原因であることがわかります。Google検索やSigcheckツールを使ってさらに調査すると、原因は「Broadcom NetXtream Gigabit Ethernet NDIS6.0 Driver」であることが判明しました。
Windows Performance Toolkitで起動時のCPU使用率を分析する
システム起動時のCPU使用率を分析したい場合は、Windows Performance Toolkit(WPT)を使用します。WPTをインストールし、Windows Performance Recorderのグラフィカルコンソールでデータ収集を開始してください(First level triangle + CPU usage → Start)。
コマンドラインからデータ収集を開始することもできます。
xperf -on latency -stackwalk profile -buffersize 1024 -MaxFile 256 -FileMode Circular && timeout -1 && xperf -d cpuusage.etl
ヒント:この方法は、起動後にシステムが固まり、まともに操作できないような状況でおすすめの手法です。Windowsの起動が遅い場合の診断方法に関する記事も併せて参考にするとよいでしょう。
保存したファイルをWindows Performance Analyzer(WPA)で開き、Systemプロセスのスタックを展開します。この例では、athrx.sysドライバー(Atheros無線LANアダプター)が高いCPU負荷の原因であることが確認できます。
問題のドライバーが見つかったら:対処方法
原因となるドライバーを特定できたら、次のいずれかの対策を実施しましょう。
- より新しい(または古い)バージョンのドライバーをインストールする
- どのドライバーバージョンでも問題が解決しない場合は、該当ハードウェアを完全に無効化(取り外し)する
また、更新したドライバーについては、Driver Verifierを使って追加のストレステストを行っておくと、安定性を事前に確認できて安心です。
-
alg.exeとは?Windowsプロセスの正体とCPU使用率が高くなる問題の直し方
alg.exeは、Windowsのプロセスファイルの一つで、「Application Layer Gateway Service(アプリケーション層ゲートウェイサービス)」とも呼ばれています。サードパーティ製プラグインの有効化やインターネット接続の共有を可能にするためのもので、ネットワークトラフィックをアプリケーションレベルで制御するファイアウォールのような役割を果たします。alg.exeサービスは、システムに害を及ぼす恐れのある信頼できないプライベートネットワークのリソースへのアクセスを簡単に拒否できます。ほぼすべてのWindowsバージョンにプリインストールされている重要なファイルであり、
-
【解決済み】Windows 10 バージョン 22H2でNtoskrnl.exeのCPU使用率が高くなる問題の対処法
最近のWindows 10アップデート後、起動時にシステムがフリーズしたり、クリック操作に反応しなくなったりしていませんか?タスクマネージャーを確認すると、「ntoskrnl.exe」というプロセスがCPUやシステムリソースを99%〜100%も占有しているケースがあります。この記事では、ntoskrnl.exeとは何か、なぜ大量のシステムリソースを消費するのか、そしてWindows 10 バージョン 22H2におけるNtoskrnl.exeのCPU使用率が高い問題を解決するための具体的な対処法を詳しく解説します。 Ntoskrnl.exeとは? Ntoskrnl.exe(Windows NT