Arrow Lake CPU搭載PCでWindows11が激重になるDPC遅延問題を解決する

アプリケーション

PCスペックではなくDPC遅延が原因だった

私の仕事用PCは、Core Ultra 7 265Kに、DDR5 192GB、nvme SSDという組み合わせですが、Windows11でしばらく作業をしていると、マウスカーソルが1秒くらいディレイするような、激しい遅延が発生してまともに操作できなくなることがありました。
最新スペックのPCですので問題はリソース枯渇ではなく、遅延(latency)問題でした。

今回の問題切り分けに役だったのは LatencyMon というフリーウェアで、DPC/ISR を確認することで問題点を特定することが出来ました。

  • interrupt-to-process latency が 1745μs(1.7ms超)
  • DPC routine execution time が 1960μs(約2ms)
  • storport.sys(ストレージ系)が上位

という結果が明らかになり、問題はArrow Lake CPUで発生しやすいストレージ関連の設定不具合、ということがわかりました。

対策の優先順位としては、AIからは以下の方法の提示がありましたが、実際に行うとNGな作業もありますので、詳細は後ほど説明したいと思います。

  • BIOSのブースト/電源管理系をオフ(200S Boost / Performance Boost / AI Overclocking 等)
  • Intel RST/VMD を安全手順で無効化→標準ドライバへ変更
  • 電源プランを高パフォーマンス固定
  • 追加:Chrome/Officeのハードウェアアクセラレーション無効、温度/スロットリング確認、クリーン起動

解決方法について、メモとして残しておきます。

対象となるPC構成

intel Arrow Lake CPUを搭載したPCで発生すると思われます。

  • Core Ultra 9 285K / 285 / 285T
  • Core Ultra 7 265K / 265KF / 265 / 265F / 265T
  • Core Ultra 5 245K / 245KF / 245 / 245T
  • Core Ultra 5 235 / 235F / 235T
  • Core Ultra 5 225 / 225F / 225T

OSは、Windows 11となります。

激重になった際の症状

PCが重たくなると、以下のような症状が同時に発生します。
PCのスペックを考えるとハードウェアの処理能力に問題がある訳ではなく、なにかしらの設定が悪い方向に競合して発生しているように見受けられます。
リソースモニターでは、CPU利用率は多くても30%程度、メモリも40%程度しか使用していませんので、リソース的には十分に余裕がある状態です。しかし、OSの動作速度は激遅で、メモリ8GBの方がまだマシに動くのでは?という状態でした。

マウスカーソルの追従が1秒くらい遅れる

マウスカーソルがリアルタイムで動かず、0.5~1秒くらい遅れて付いてくるようになります。しかも、速度も一定ではなく、サッと動くときもあれば、しばらく止まってから一気に動くときも。
めちゃくちゃストレスが溜まります。

アプリが応答なしになる

特に重たい処理をさせている訳でもないのに、ウィンドウが応答なしになったり、閉じるボタンを押してもウィンドウが閉じられない、といった症状が発生します。
また、応答なしとはなっていない状態でも、ウィンドウ内が真っ白だったり、とにかく遅延しまくりです。

キーボード入力が遅延する

キーボードで入力した文字が表示されるまで0.5秒くらい遅延します。もっとひどいのはATOKによる日本語入力で、入力してから表示されるまで数秒、といった場合も。
とにかくこれでは作業になりません。

原因を切り分ける

AIにPCの構成と状況を伝え、対応方法を検討させました。
今までは自力で検索しないといけなかったのですが、最近はAIを使えば一発で回答を得られるので便利になりました。ただ、嘘(ハルシネーション)も多いのでそこは見極めが必要です。
原因としては、以下の回答がありました。

AI:
特にArrow Lake世代(Core Ultra 200シリーズ)ではBIOS設定やドライバ関連のDPC/ISR latencyが原因になるケースが報告されています。原因を特定するための効率的な手順(優先順位順)以下の順で進めてください。

提示された方法は以下となります。

1,CPU/メモリ使用量の確認
「プロセス」タブ → Chrome.exe、WINWORD.EXE、EXCEL.EXE、VS code等のCPU/メモリ使用量をチェック
Chromeが特に重い場合が多い(AIサイトのWebGPU/JS処理)
→全体の使用量を見てもCPUは30%、メモリも40%程度の使用量で特に問題がありませんでした

2,Chromeのリソース使用量の確認
ChromeでAIタブを特定し、Chromeを開いた状態で Shift + Esc を押下すると、Chrome内蔵タスクマネージャーが起動します。
各タブ(AIチャット画面)の「CPU」「メモリ」「GPU」使用量を確認し、怪しいタブを1つずつ閉じて症状が改善するかテスト(拡張機能も疑う)
→これも特に問題はありませんでした

3,DPC/ISR Latencyを測定
LatencyMon(無料)をダウンロード・インストールして遅延原因を特定。
→結果的にこのツールで問題の特定が可能で、とても便利でした。

LatencyMonを使って問題を特定する

どのドライバ/デバイスが遅延を起こしているかを特定するツールが、LatencyMonとなります。
無料で使用可能で、以下のURLからダウンロード可能です。

Resplendence Software - LatencyMon: suitability checker for real-time audio and other tasks
LatencyMon: suitability checker for real-time audio and other tasks

LatencyMonの画面です。
左上の再生ボタンを押すとモニタリングを開始し、遅延を起こしているドライバを特定してくれます。
バーグラフは最も影響が大きい遅延を起こしているドライバ名と遅延時間(μ秒)を表示しています。
PCが重たくなったらモニタリング開始ボタンを押し、数分~十数分ほど起動したままにします。そうすると、その間の処理を監視し、原因を特定してくれます。

結果の見方ですが、「Highest measured ISR latency」 / 「Highest measured DPC latency」が 1000μs(1ms)を超えている場合は異常発生、となります。
分析もAIに任せることにしました。方法は簡単、しばらく放置したLatencyMonの画面のスクリーンショットを撮ってAIのチャット画面に貼り付けるだけでOKです。

AI:
これを見ると、原因はほぼ特定できました。主要なポイントまとめHighest measured interrupt to process latency: 1745 μs(1.7ms超) → これは入力ラグやマウス遅延の原因として十分に高い値です。
Highest reported DPC routine execution time: 1960 μs(約2ms) → storport.sys(Microsoft Storage Port Driver)が犯人。
ISRはwdf01000.sysで60μsと低め → 問題は主にDPC側、特にストレージ関連。
結論部でも「power management」や「CPU throttling」を疑うメッセージが出ています。

ということで、あっさりと問題点の特定ができました。
ストレージコントローラーが激重になり、全体の足を引っ張っている状態です。高負荷ではなく、ストレージまわりの割り込み処理の待ち時間頻発が体感での遅延に繋がっていた、ということです。

Arrow LakeのDPC遅延問題の解決方法

storport.sysはストレージ(特にNVMe SSD)のI/Oを扱うコアドライバで、高DPC latencyが出る場合の典型的な症状が、まさに今回の「マウス/キーボードの遅延」「システム全体のかくつき」「1秒レベルのディレイ」となるようです。
Arrow Lake世代CPU + NVMe SSDの環境において軽めの負荷でも起きるのは、ストレージドライバ + 電源管理の相性問題が濃厚と思われます。

特にArrow Lake(200シリーズ)ではBIOS/ドライバの初期トラブルが多く、storport.sysが悪さをする報告が散見されているようで、海外のフォーラムなどでもCPU電源管理関連をオフ/最適化することで解決したとの報告が上がっています。

BIOS側の設定変更でブースト/電源管理系をオフ

  • BIOSで以下の項目を変更
    • 200S Boost / Performance Boost / AI Overclocking:オフ
    • SpeedStep / C-States / Turbo Boost:オフ
  • 目的:電源管理由来の揺らぎを減らす
  • 期待:storport.sys の DPC が下がる方向

ProArt Z890-CREATOR WIFIのIntel 200S BoostとC-states関連の設定はここにあります。
C-statesについてはちょっと階層が深いので解りづらいですね。

Windows電源プランを高パフォーマンス固定

  • 設定 → 電源とバッテリー → 最良のパフォーマンス
  • 電源オプション → 高パフォーマンス
  • プロセッサ最小/最大を 100% 固定(可能なら)

電源オプションを開き、高パフォーマンスプランを選択します。

コントロールパネルから、電源オプションを開き、プロセッサの電源管理を最小、最大ともに100%に設定します。
しかし、昔のWindowsの仕様を引きずってるとはいえ、管理画面とコントロールパネルが別々の機能として独立してるのは使いづらいですよね…。

RST/VMDドライバをアンインストールするのは危険

AI:
Intel Rapid Storage Technology (RST)をアンインストール or 標準ドライバに戻す。
デバイスマネージャー → 「ストレージコントローラー」→「Intel(R) RST / VMD Controller」系があれば右クリック → アンインストール(ドライバの削除にチェック)
再起動 → Windowsが自動で標準のMicrosoft NVMe / storahci.sysドライバに戻す。
これでstorport.sys latencyが激減する報告が非常に多い(特にIntelプラットフォーム)。

AI:
起動しなくなるリスクをゼロにする方法
直接削除すると稀にブートローダーが混乱するケースがあるので、安全手順を厳守してください。
先にBIOSでVMDを無効化(推奨順序逆転で安全) PC再起動 → BIOSに入る(Delキー or F2など、マザボードによる)
Intel VMD Controller または Enable VMD を Disabled に変更
保存して退出 → Windowsが起動するか確認(ここで起動しなくなったらBIOSに戻して元に戻せばOK)
起動したらデバイスマネージャーを見ると、VMDコントローラーが消えているはず(または「不明デバイス」になる)。

…という提案をされたのですが、VMDは外すとWindowsが起動しなくなるのでNGです。
まだ成熟段階にある(ように感じる)VMDですが、私はWindowsインストール時にドライバを追加してEnableにしています。

試しに、AIの提案通りに「安全策でドライバを無効にする前にVMDをBIOSでDisabled」にしたところ、Windowsが起動しなくなりました。やっぱりね…

VMDをDisabledにすると、BIOS画面にデータ損失が起こるけど良いのか?と警告が出ます。
OKを押してDisabledに変更→再起動したところ、Windowsの起動ロゴはでるものの、そのまま起動せず、bootローダーが見つからない、といったメッセージが出てリセットされてしまいました。

VMDをEnabledに戻して再起動したところ、Windowsが修復モードで起動して一瞬ヒヤッとしましたが、無事起動するようになりました。
Windowsの修復モードって、修復された経験が一度も無いんですよね…

VMDについては最新ドライバを当てることで対応

ということで、VMDについてはアンインストールを諦め、最新ドライバにアップデートすることにしました。
2026/1/7に最新版のドライバである、20.2.6.1025.3がリリースされています。

https://www.intel.co.jp/content/www/jp/ja/download/849936/intel-rapid-storage-technology-driver-installation-software-with-intel-optane-memory-12th-to-15th-gen-platforms.html

実際のドライバの日付は2025/4/11ですが、その前は2024年のドライバだったので、無事更新されていました。

動的ティック無効化は悪影響もあり

動的ティック無効化とは、いわゆる「OSタイマーの精度固定と遅延(レイテンシ)の最小化」を目的としたチューニング設定で、主に高フレームレートを求めるゲーマーや、DTM(音楽制作)などのリアルタイム性能を重視する環境で使われる手法となります。
設定方法は、管理者権限のコマンドプロンプトから、以下のコマンドを実行します。(反映には要再起動)

PowerShell
bcdedit /set useplatformtick yes
bcdedit /set disabledynamictick yes
bcdedit /deletevalue useplatformclock
コマンド内容役割
bcdedit /set useplatformtick yesプラットフォームチックの強制システムのチック計測に、合成タイマーではなくハードウェアタイマー(HPET等)を使用するように強制します。
bcdedit /set disabledynamictick yes動的チックの無効化Windowsの省電力機能(アイドル時にタイマーを止める機能)をオフにします。常に一定の間隔でタイマーを動かし続けます。
bcdedit /deletevalue useplatformclockプラットフォームクロック設定の削除HPETの「強制使用」を解除します。これにより、より高速なCPU内蔵タイマー(TSC)が優先的に使われるようになります。

動的ティック無効化により、以下のような効果を狙えます。

  • マイクロスタッター(微細なカクつき)の抑制
    省電力によるタイマーの変動(Dynamic Tick)を止めることで、フレームタイムの不整合を減らし、映像の滑らかさを安定させます。
  • 入力遅延の改善
    OSが常に一定の周期でリフレッシュされるため、マウス入力やオーディオ処理のレスポンスがわずかに向上する可能性があります。
  • タイマー精度の安定化
    低速な外部チップ(HPET)

私の環境で実施したところ、USBオーディオで音飛びが発生するようになってしまいました。
サンプリングレートを44.1KHzまで落としても解消されないので動的ティック無効化が原因と判断し、元の設定に戻したら問題無く動作するようになりました。

動的ティックを有効化するには以下のコマンドを実行してください。

PowerShell
bcdedit /deletevalue useplatformtick
bcdedit /deletevalue disabledynamictick

無事に激重状態が解消された!

上記の一連の対応を実施したところ、激重になる状態は回避されました。
おそらく、C-stateまわりの設定変更が効いているように思います。
しばらく動作確認した後、Intel 200S BoostをEnableに戻してみましたが、今のところ激重になる現象は発生していません。

スペック的には余裕があるのになぜかPCが激重になってしまう方は、C-stateと電源まわりの設定を疑ってみると良いかもしれません。

コメント

タイトルとURLをコピーしました