【Windows 10トラブル対策】Windowsが遅い! その原因と対策「検索インデックス作成の不具合」編:Tech TIPS
「Windows 10の反応がにぶい」といった場合、「Windowsの検索」機能によるインデックス作成が繰り返し実行されていることが原因の可能性がある。インデックス作成には、意外とCPUパワーが要求され、ディスクアクセスも多く発生するため、Windowsの反応がにぶくなりがちだ。そこで、インデックス作成に不具合が発生していないかを見つける方法とその解決策を紹介する。
対象:Windows 10
![「Microsoft Windows Search Indexer」の負荷が定常的に高いときインデックス再構築を繰り返している可能性がある](https://image.itmedia.co.jp/ait/articles/2011/30/wi-win10indexer01.png)
「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の検索」で「拡張」検索モードを選択する](https://image.itmedia.co.jp/ait/articles/2011/30/wi-win10indexer02.png)
「Windowsの検索」で「拡張」検索モードを選択する
Windows 10 May 2019 Updateから、「拡張」検索モードが新設され、ドライブ全体を検索対象にできるようになった。[Windowsの設定]アプリの[検索]−[Windowsの検索]画面で設定できる。
Indexerの状態を確認する方法
Indexerは、インデックスが作成されていれば、新規および更新されたファイルをインデックス化するだけで済むため、比較的短時間で実行を終了する。また、バックグラウンドで動作するため、システムに高い負荷をかけないように設計されていることもあり、通常であれば、ユーザーがその実行時の負荷を感じることはほとんどない。
しかしインデックスが未作成の場合、最初は、対象ファイルを全部スキャンし、ファイルによってはファイル内容を読み出し、インデックス情報を構築する必要がある。この「インデックス再構築」処理には、比較的大きな負荷がかかる。
また、インデックス情報に何らかのエラーがあった場合にも、インデックスファイルを作り直すため、同じ処理が実行される。インデックス再構築がうまくいけば、システム負荷が定常的に高くなることはない。
システム負荷が高い場合はインデックスの再構築を疑う
エラーなどによりインデックス再構築を繰り返すと、システムの負荷が定常的に高くなる。負荷が高いと思ったとき、タスクマネージャーやリソースモニターで「Microsoft Windows Search Indexer」の負荷がずっと続いているなら、インデックス再構築が行われている。ファイル数やシステム性能にも依存するが、インデックス再構築処理には1日程度かかることもある。数日以上、処理が続くようなら再構築を繰り返している可能性がある。
![リソースモニターでSearchIndexer.exeのCPU実行状態を確認する](https://image.itmedia.co.jp/ait/articles/2011/30/wi-win10indexer03.png)
リソースモニターでSearchIndexer.exeのCPU実行状態を確認する
[スタート]メニューの[Windows管理ツール]−[リソースモニター]を選択して、リソースモニターを起動し、「SearchIndexer.exe」の負荷を確認する。インデックス再構築処理が行われている場合、「SearchIndexer.exe」のCPU実行時間が長く、ハードウェア性能にもよるが10〜20%以上のCPU負荷が長時間続く。また、ディスクアクセスの頻度も高い。
イベントビューアーでIndexerのエラーを確認する
エラーの有無は、イベントビューアー([スタート]メニューの[Windows管理ツール]−[イベントビューアー]で起動)で確認できる。Indexerのイベントは、[Windowsログ\Application]フォルダにあり、ソース名は「Search」である。このソースのエラーが多発しているようであれば、インデックス再構築を疑うべきだ。また、イベントID「7040」は、インデックス再構築を意味するコードだ。
![イベントビューアーでIndexerのエラーを確認する](https://image.itmedia.co.jp/ait/articles/2011/30/wi-win10indexer04.png)
イベントビューアーで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(Microsoft Store)
![Indexer Diagnosticsツールの画面](https://image.itmedia.co.jp/ait/articles/2011/30/wi-win10indexer05.png)
Indexer Diagnosticsツールの画面
Microsoft StoreからIndexer Diagnosticsツールを入手できる。これはMicrosoft製のツールでインデックス作成処理などの状態を見ることができる。
まず、役に立つのはウィンドウ左側の[Service status]タブにある「Total indexer usage」だ。ここには、インデックス処理されたファイル数が左側(indexed)に、未処理のファイル数が右側(pending)に表示される。だんだんと左側の数字が大きくなって、グラフが右端に到達すればインデックス再構築は終了である。
しかし、再構築が再度行われるとグラフは、左側に戻ってしまう。時間を空けて2回目にグラフを見たときに、以前よりも左側にグラフがあれば、その間に再構築が再スタートしたことを意味する。
なお、この数字は、[Windowsの設定]アプリの[検索]−[Windowsの検索]画面の「インデックスステータス」欄にも表示されるが、更新間隔が長く、動いているかどうかを判断するのにもしばらく見ている必要がある。これに対してIndexer Diagnosticsツールはリアルタイムに更新されていくため、状況をすぐに把握できる。また、グラフにより視覚的に状況を把握しやすいというメリットがある。
![[Windowsの検索]画面の「インデックスステータス」欄でもインデックスの作成状態は確認可能](https://image.itmedia.co.jp/ait/articles/2011/30/wi-win10indexer06.png)
[Windowsの検索]画面の「インデックスステータス」欄でもインデックスの作成状態は確認可能
インデックスの作成状態は、[Windowsの設定]アプリの[検索]−[Windowsの検索]画面の「インデックスステータス」欄でも見ることができるが、数値のみの表示であること、更新間隔が長く、Indexer Diagnosticsツールと比べて状況を把握しにくい。
[Search is not working]タブには、メモリに常駐して動作している「Windows Search」サービスのRestart(再起動)/Reset(初期化)機能がある。基本的にはRestartでサービスを再起動させてエラーや異常な状態から復帰させる。それでも同じようにエラーが続く場合には、Resetを使う。うまくいけば、これでエラーが続く状態から脱せることがある。
![Indexer Diagnosticsツールの[Search is not working]タブの画面](https://image.itmedia.co.jp/ait/articles/2011/30/wi-win10indexer07.png)
Indexer Diagnosticsツールの[Search is not working]タブの画面
Indexer Diagnosticsツールの[Search is not working]タブでは、Indexerを含むWindows Searchサービスの再起動やリセット処理が行える。
【解決方法】再構築が続く場合はトラブルシューティングツールを使う
それでも、再構築が繰り返し行われるのは、対象となるフォルダやファイルが原因で回復できないようなエラーがIndexerの内部で発生しているからだ。対策としては大きく2つある。1つは、トラブルシューティングツールを使う方法だ。もう1つは、インデックス化対象を絞ってインデックス再構築を行わせ、段階的に範囲を広げていく方法である。
Windows 10のトラブルシューティングツールには、「検索とインデックス作成」を対象としたものがある。これを実行することで、Indexerの不具合が解消できることがある。
[Windowsの設定]アプリの[更新とセキュリティ]−[トラブルシューティング]画面を開き、[追加のトラブルシューティング]をクリックする。[追加のトラブルシューティング]画面になるので、「検索とインデックス作成」を展開し、[トラブルシューティングツール]ボタンをクリックする。[検索とインデックス作成]のトラブルシューティングツールが起動するので、「検索またはインデックス作成に時間がかかります」にチェックを入れて、[次へ]ボタンをクリックして実行する。指示に従って、トラブルシューティングツールを進めればよい。
![「検索とインデックス作成」に関するトラブルシューティングツールを起動する(1)](https://image.itmedia.co.jp/ait/articles/2011/30/wi-win10indexer08.png)
「検索とインデックス作成」に関するトラブルシューティングツールを起動する(1)
[Windowsの設定]アプリの[更新とセキュリティ]−[トラブルシューティング]画面を開き、[追加のトラブルシューティング]をクリックする。
![「検索とインデックス作成」に関するトラブルシューティングツールを起動する(2)](https://image.itmedia.co.jp/ait/articles/2011/30/wi-win10indexer09.png)
「検索とインデックス作成」に関するトラブルシューティングツールを起動する(2)
[追加のトラブルシューティング]画面になるので、「検索とインデックス作成」を展開し、[トラブルシューティングツール]ボタンをクリックする。
![「検索とインデックス作成」に関するトラブルシューティングツールを起動する(3)](https://image.itmedia.co.jp/ait/articles/2011/30/wi-win10indexer10.png)
「検索とインデックス作成」に関するトラブルシューティングツールを起動する(3)
[検索とインデックス作成]のトラブルシューティングツールが起動するので、「検索またはインデックス作成に時間がかかります」にチェックを入れて、[次へ]ボタンをクリックする。指示に従って、トラブルシューティングツールを進めることで、インデックス作成の不具合が解消できることがある。
【解決方法】インデックス作成の対象フォルダを絞る
筆者の環境では、大量にファイルがあったため、段階的にインデックス化範囲を拡大させていくことで、インデックス再構築を繰り返すエラーから脱することができた。現在インデックス化の対象となっているアイテムは400万個程度である。大量のファイルの処理を連続して行うことで、何らかの内部エラー(特にファイル内容のインデックス化処理のエラー)が発生し、インデックス再構築処理がエラーになっていたと考えている。
拡張検索モードでは「インデックス対象から外すフォルダ」を指定する。インデックス再構築が成功したら、これを段階的に解除していくことでインデックス作成範囲を広げていく。
![インデックス処理から除外するフォルダを指定する](https://image.itmedia.co.jp/ait/articles/2011/30/wi-win10indexer11.png)
インデックス処理から除外するフォルダを指定する
[Windowsの設定]アプリの[検索]−[Windowsの検索]画面の下にある「除外するフォルダーの追加」を使えば、インデックス処理の対象から指定フォルダを除外することが可能だ。
![インデックス作成の対象を絞ることで不具合を解消する](https://image.itmedia.co.jp/ait/articles/2011/30/wi-win10indexer12.png)
インデックス作成の対象を絞ることで不具合を解消する
「除外するフォルダの追加」の指定では、指定されたフォルダが対象から外され、指定されていないフォルダがインデックス化の対象になる。大量のファイルがある場合には、インデックス処理の完了を確認しつつ段階的に範囲を広げていく。
例えば、筆者の場合には、D:ドライブがあったので、ひとまず、「D:\」を登録し、さらにC:ドライブのルートディレクトリ(C:\)にあった「\Users」以外のフォルダを全て登録してみた。また、「\Users」以下の自分のユーザーフォルダを除外した(一部は初期状態で除外設定がされている)。これで自分のデータフォルダのみがインデックス化の対象となった。さらに、大量のファイルが[OneDrive]フォルダ以下にあったので、[OneDrive]フォルダも除外した。この状態で、PCを再起動し、インデックスの再構築が成功することをIndexer Diagnosticsで確認した。
その後、インデックス再構築が完了したことを確認しながら、C:ドライブのルートディレクトリにあるフォルダや[OneDrive]フォルダなどを、「除外するフォルダー」から外していくと、無事全てのデータフォルダのインデックス再構築を終了させることができた。
このように大量のデータがある場合には、フォルダを指定して、段階的に対象ファイルを増やすようにするとよい。D:ドライブを一回除外したら、いきなりD:ドライブ全体をインデックス化するのは止めて、ルートディレクトリにあるフォルダを幾つか残して登録し、インデックス再構築を確認したら、登録を解除していきながら、対象範囲を広げていく。
インデックスの対象とするフォルダを選択するポイント
インデックス作成は、検索の頻度が高いフォルダに限定しておくべきで、必ずしも全フォルダをインデックス化の対象とする必要はない。インデックス化の対象から外しても検索対象にはなるため、クラシック検索モードのときのようにファイルが見つからないという問題はなく、単に結果が出るまでに時間がかかるだけだ。
インデックス化なしで検索できるのは、ファイル名や更新日時などのメタデータ情報に関してのみだ。エクスプローラーのファイル領域に表示できる列がメタデータ(プロパティ)である。特定のファイル形式(例えば、テキストファイルやPDFファイルなど)に関しては、ファイル内容での検索が可能だが、この場合には、インデックス化が必須となる(インデックス化の対象になっていなければ、該当ファイル形式でもファイル内容の検索はできない)。
週に1回程度の検索が必要な情報があるフォルダは、インデックス化することでコストに見合う時間で検索が可能になる。一方、年に1回、半年に1回程度以上の頻度で必要になるようなファイルであれば、コスト(インデックス情報ファイルの占有量やCPU負荷、そしてエラー発生)に対してインデックス化のメリットは大きくない。
現状の「Windowsの検索」の安定性を考えると、インデックス化の対象はできるだけ絞った方が、エラー発生確率が低くなり、安定した動作を行えると思われる。Indexerを含む「Windowsの検索」はWindows 10のアップデートで改良はされているようなのでトラブルも減る方向にあると思う。それでも、あまり大量のファイルをインデックス化せず、エラーを繰り返さない範囲での利用が効率的だろう。
Copyright© Digital Advantage Corp. All Rights Reserved.