連載
» 2020年11月30日 05時00分 公開

【Windows 10トラブル対策】Windowsが遅い! その原因と対策「検索インデックス作成の不具合」編Tech TIPS

「Windows 10の反応がにぶい」といった場合、「Windowsの検索」機能によるインデックス作成が繰り返し実行されていることが原因の可能性がある。インデックス作成には、意外とCPUパワーが要求され、ディスクアクセスも多く発生するため、Windowsの反応がにぶくなりがちだ。そこで、インデックス作成に不具合が発生していないかを見つける方法とその解決策を紹介する。

[塩田紳二,著]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

対象:Windows 10


「Microsoft Windows Search Indexer」の負荷が定常的に高いときインデックス再構築を繰り返している可能性がある 「Microsoft Windows Search Indexer」の負荷が定常的に高いときインデックス再構築を繰り返している可能性がある
「Windowsの検索(Windows Search)」で「拡張」検索モードを選択したとき、初回のインデックス作成処理は、CPUの負荷が高く、比較的長い間かかってしまう。もし、この処理中にエラーが発生すると、この処理を何回も繰り返す場合がある。

 「何かWindows 10の反応がにぶい」と感じることはないだろうか? タスクマネージャーを見ると、CPUの負荷が高く、ディスクアクセスも多い状態になっている。これは、「Windowsの検索(Windows Search)」が実行している「Indexer(インデクサー)」にエラーが発生していて、インデックス作成を繰り返し行っている可能性が高い。

 Indexerとは、検索処理を高速化するため「インデックス」情報をバックグラウンドで作成する機能だ。インデックス作成には、意外とCPUパワーが要求され、ディスクアクセスも多く発生するため、Windowsの反応がにぶくなりがちである。 そこで、本Tech TIPSでは、Indexer関連のトラブルを解決する方法を解説する。

Windows 10 May 2019 Update以降の拡張検索モードでトラブルが発生しやすい

 「Windowsの検索」は、Windows 10 May 2019 Update(バージョン1903)で大きな改良が行われ、「拡張」検索モードが追加された。これに対して、October 2018 Update(バージョン1809)までの「Windowsの検索」を「クラシック」検索モードと呼ぶ。

 現在、Indexerのエラーは、拡張検索モードで発生することが多いようだ。クラシック検索モードでは、Windows Vistaのころから改修されてきたコードが使われているため、トラブルは比較的少ないので、対策としてはクラシック検索モードに戻してしまうという方法もある。だが、「Windowsの検索」の使い勝手は落ちてしまう。

「Windowsの検索」で「拡張」検索モードを選択する 「Windowsの検索」で「拡張」検索モードを選択する
Windows 10 May 2019 Updateから、「拡張」検索モードが新設され、ドライブ全体を検索対象にできるようになった。[Windowsの設定]アプリの[検索]−[Windowsの検索]画面で設定できる。

Indexerの状態を確認する方法

 Indexerは、インデックスが作成されていれば、新規および更新されたファイルをインデックス化するだけで済むため、比較的短時間で実行を終了する。また、バックグラウンドで動作するため、システムに高い負荷をかけないように設計されていることもあり、通常であれば、ユーザーがその実行時の負荷を感じることはほとんどない。

 しかしインデックスが未作成の場合、最初は、対象ファイルを全部スキャンし、ファイルによってはファイル内容を読み出し、インデックス情報を構築する必要がある。この「インデックス再構築」処理には、比較的大きな負荷がかかる。

 また、インデックス情報に何らかのエラーがあった場合にも、インデックスファイルを作り直すため、同じ処理が実行される。インデックス再構築がうまくいけば、システム負荷が定常的に高くなることはない。

システム負荷が高い場合はインデックスの再構築を疑う

 エラーなどによりインデックス再構築を繰り返すと、システムの負荷が定常的に高くなる。負荷が高いと思ったとき、タスクマネージャーやリソースモニターで「Microsoft Windows Search Indexer」の負荷がずっと続いているなら、インデックス再構築が行われている。ファイル数やシステム性能にも依存するが、インデックス再構築処理には1日程度かかることもある。数日以上、処理が続くようなら再構築を繰り返している可能性がある。

リソースモニターでSearchIndexer.exeのCPU実行状態を確認する リソースモニターでSearchIndexer.exeのCPU実行状態を確認する
[スタート]メニューの[Windows管理ツール]−[リソースモニター]を選択して、リソースモニターを起動し、「SearchIndexer.exe」の負荷を確認する。インデックス再構築処理が行われている場合、「SearchIndexer.exe」のCPU実行時間が長く、ハードウェア性能にもよるが10〜20%以上のCPU負荷が長時間続く。また、ディスクアクセスの頻度も高い。

イベントビューアーでIndexerのエラーを確認する

 エラーの有無は、イベントビューアー([スタート]メニューの[Windows管理ツール]−[イベントビューアー]で起動)で確認できる。Indexerのイベントは、[Windowsログ\Application]フォルダにあり、ソース名は「Search」である。このソースのエラーが多発しているようであれば、インデックス再構築を疑うべきだ。また、イベントID「7040」は、インデックス再構築を意味するコードだ。

イベントビューアーでIndexerのエラーを確認する イベントビューアーでIndexerのエラーを確認する
イベントビューアーのカスタムビューなどを使い、ソースを「Search」に限定するとSearch関連のエラーを見ることができる。このうち、イベントID 7040は、エラーの結果インデックス再構築処理が開始されたことを示す。

【解決方法】MicrosoftのIndexer Diagnosticsツールを使う

 エラーが多発したためか、Microsoftは「Indexer Diagnostics」ツールを提供している。これは、Indexerの状態をリアルタイムに表示したり、インデックスの状態を調べたりでき、Windows Searchサービスの再起動やリセットなども可能にするものだ。Windows Search関連でトラブルがあるようなら、インストールしておくといいだろう。ただし、開発途上なのかWindows Search側に問題があるのか、このツール自体の動作が不安定なこともある点には注意してほしい。

 Indexer Diagnosticsは、以下のURLでMicrosoft Storeからインストールが可能だ。

Indexer Diagnosticsツールの画面 Indexer Diagnosticsツールの画面
Microsoft StoreからIndexer Diagnosticsツールを入手できる。これはMicrosoft製のツールでインデックス作成処理などの状態を見ることができる。

 まず、役に立つのはウィンドウ左側の[Service status]タブにある「Total indexer usage」だ。ここには、インデックス処理されたファイル数が左側(indexed)に、未処理のファイル数が右側(pending)に表示される。だんだんと左側の数字が大きくなって、グラフが右端に到達すればインデックス再構築は終了である。

 しかし、再構築が再度行われるとグラフは、左側に戻ってしまう。時間を空けて2回目にグラフを見たときに、以前よりも左側にグラフがあれば、その間に再構築が再スタートしたことを意味する。

 なお、この数字は、[Windowsの設定]アプリの[検索]−[Windowsの検索]画面の「インデックスステータス」欄にも表示されるが、更新間隔が長く、動いているかどうかを判断するのにもしばらく見ている必要がある。これに対してIndexer Diagnosticsツールはリアルタイムに更新されていくため、状況をすぐに把握できる。また、グラフにより視覚的に状況を把握しやすいというメリットがある。

[Windowsの検索]画面の「インデックスステータス」欄でもインデックスの作成状態は確認可能 [Windowsの検索]画面の「インデックスステータス」欄でもインデックスの作成状態は確認可能
インデックスの作成状態は、[Windowsの設定]アプリの[検索]−[Windowsの検索]画面の「インデックスステータス」欄でも見ることができるが、数値のみの表示であること、更新間隔が長く、Indexer Diagnosticsツールと比べて状況を把握しにくい。

 [Search is not working]タブには、メモリに常駐して動作している「Windows Search」サービスのRestart(再起動)/Reset(初期化)機能がある。基本的にはRestartでサービスを再起動させてエラーや異常な状態から復帰させる。それでも同じようにエラーが続く場合には、Resetを使う。うまくいけば、これでエラーが続く状態から脱せることがある。

Indexer Diagnosticsツールの[Search is not working]タブの画面 Indexer Diagnosticsツールの[Search is not working]タブの画面
Indexer Diagnosticsツールの[Search is not working]タブでは、Indexerを含むWindows Searchサービスの再起動やリセット処理が行える。

【解決方法】再構築が続く場合はトラブルシューティングツールを使う

 それでも、再構築が繰り返し行われるのは、対象となるフォルダやファイルが原因で回復できないようなエラーがIndexerの内部で発生しているからだ。対策としては大きく2つある。1つは、トラブルシューティングツールを使う方法だ。もう1つは、インデックス化対象を絞ってインデックス再構築を行わせ、段階的に範囲を広げていく方法である。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。