Spotlight を止めずに mds_stores を止めた
mds_stores とその関連プログラムが外付HDD に永遠とアクセスを続けていて、それを Spotlight の使用を止めずになんとかなったという話。
ある時、TimeMachine 用の外付けHDDのアクセスランプがずっと点滅しているのに気づきました。
バックアップを作成中というわけでも無いのに永遠終わりません。HDDにも良くないのでなんとか止めたい。
この記事が役に立つ可能性があるのは、mds_stores がアクセスしている対象が TimeMachine のディスクだという場合です。
関連記事⇨Macの動きがbirdとやらのせいで遅いのでなんとかした。iCloud Driveが原因っぽい。
追記:ここから mds_stores が止めるまでの流れを書いていますが、実行したことを全部書いてしまっているので大変ごちゃごちゃしてます。途中、意味が無かったと思われる部分もあります。必要と思われる部分だけでまとめた記事を別に書いたので、読むのが面倒くさい方はこちらをどうぞ → (まとめ版) Spotlight を止めずにmds_stores を止めた方法
mds_stores が原因か?
多分きっかけはLocal by flywheel がクラッシュして Mac が強制再起動した時から。
(↑多分違います)
気づいてから4時間ぐらいは我慢してたんですが、さすがに気になり出していろいろ原因を探り始めます。
アクティビティーモニターを見ると mds とか mds_stores あたりが永遠動いているのがわかりました。
ディスクの読み込みを見てもこのプログラムが居座っているので、こいつらが外付けHDDにアクセスし続けているっぽい。
調べるとこのmds mds_stores が暴走してトラブルの原因になっているケースが多いみたい。
こいつのせいで、何もアプリを使用しなくてもcpu使用率が20%とか行ったりします。(私が使用してきた感じ、M1 MacでCPU使用率20%超えを維持しているのは結構なことです。瞬間的に超えることはもちろんよくありますが。)
私の場合はMacの使用に支障が出ている程ではなく、巷で言わるCPU使用率100%とか暴走とまでは行っていないんですけど。
mds_stores を止めるには spotlight の使用をやめる?
mds はspotlight に関連するプログラムだというのはすぐ分かったんですが、止めるには spotlight の使用をやめるしかなさそう。
別に spotlight を使用する機会はほぼ無いですが、offにしておくと偶に影響がでるアプリもあるらしくあまりやりたくない。
結果から言うと
で、色々やった結果から先に言いますと、
- 私の場合、原因は “おそらく” TimeMachine のデータ。
- 外付けHDDへの異常なアクセスは止まった
- mds は 通常時はほとんど動かなくなった。
- 代償として、TimeMachine のこれまでのバックアップを失った。
- cpu使用率はシステム、ユーザーともに2%程度になった(購入当初と同じレベル!!)
です。
*追記 あとで一旦症状が復活してしまいますが、それもなんとか止めることができました。最後に書いてます。
mds_stores が止まるまでの流れ
インデックス再構築が原因か?
いろいろ調べていくうちに、アプリのクラッシュをきっかけに spotlight のインデックスがおかしくなり、インデックスを再構築しているのではないかと疑いはじめました。
それであれば数時間経てばさすがに終わるはず。
しかし半日経っても終わらない。spotlightにも再構築の表示は出ていない。
ということはインデックス再構築をしているというわけではなさそう。
TimeMachineが原因っぽい?
外付けHDDですが、TimeMachine用とデータ保存用にパーテーションを切って使用してました。
データ保存用パーテーションには10GB程度しか入っていません。
となると、mdsはTimeMachineのデータにアクセスし続けているのだろうと見当がつきます。
(timemachineのディスクをspotlightの対象から外そうかと思いましたが、それは良くないらしいのでやめました。)
OS再インストールは避けたい
OS再インストールも検討しましたが、appleが提示している方法を読むとOSが強制的にBig SurからMontereyに変わるようにしか見えません。(使用中のバージョンの最新版がインストールされると記載されている箇所もありますが、再インストールしようとすると堂々と「新しくMontereyをインストール」と表示されてしまう。)
関連ページ→macOS を再インストールする方法(apple公式)
仕事で使用するので今OSバージョンアップによるトラブルを被るのは避けたい。
なのでOS再インストールは最終手段として、他に出来ることは無いか探りました。
外付けHDDを外すと mds_stores は止まる
外付けHDDを取り外すとmdsは止まりました。(M1 Mac 購入以来初めて取り外した)
ということは原因は外付けHDDそのもの、そして TimeMachine のデータと mds とで何かがおかしくなっているっぽい。
TimeMachine のバックアップデータを移そうとして失敗
幸い使っていないHDDがあったため、TimeMachine のデータをそちらへ移し、今まで使用していた外付けHDDをフォーマットして、新しく TimeMachine のバックアップを作成してみようかと考えました。
環境設定から TimeMachine を開き、新しくHDDを追加します。
この時、2台のHDDを TimeMachine として使用するか、新しく追加したHDDに全部移すか選択肢があります。
私は最初、「新しい方へ全部移す」を選択しました。
しかし私はバックアップ作成途中で中止して、2台使用するに変更してしまったんですねえ。
たぶんこれがいけなかったと思うんですけど、残ったのは最新のバックアップだけ。以前のバックアップは失ってしまいました。
実際、はじめから2台で使用するにしておけば失わなかったかどうかはわからないので何とも言えないところではあります。
ちなみにこの時点で旧HDDのアクセスランプ点滅は止まっています。つまり mds_stores は止まっていた。
外付けHDDをフォーマットして新たにバックアップ作成
ここから旧HDDをフォーマットします。
TimeMachine 設定で一旦この旧HDDを削除して、フォーマットした後にまた追加しました。
今回は最初から2台で使用するに設定。(でもすでに最新のバックアップしか残っていません…)
mds_stores も外付けHDDへの異常アクセスも止まった
最初のバックアップを作成している間は mds、mds_stores などガンガン動いていて、cpu 使用率も常時20%越えでしたが、終了するとHDDへのアクセスも止まり、mds が居座っている様子もなくなりました。
追記:後で復活してしまいます。。。
アイドリング状態でのcpu使用率もシステム、ユーザーともに2%以下となりました。
ちょっと操作するとすぐ上がりますが…
ああ…買ったばっかりの時こんなだったなあ。
バックアップを失ったことだけが悔やまれます。まあでも今のところ必要なさそうなので一安心。
結果的に
そもそも私は外付けHDDへの止まらないアクセスをなんとかしたかっただけで、mds_stores が暴走して操作に支障をきたしていたわけではありません。
同じ状況の人がそんなに多くいるとは思えませんが、そこでmds の存在に気づき、結果外付けHDDへの異常なアクセスは止まり、副産物としてCPU使用率を安定させることができました。
簡単に何をしたかと言うと、結果的に TimeMachine のバックアップを作り直しただけ、ということになります。
(*追記: 最後まで読んでいただくとわかりますが、これ実はあんまり意味なかったかもしれないし意味あったかもしれない。よくわからないというのが正直なところです。)
私は以前のバックアップを失ってますので、やる場合は自己責任でお願いします。
でも巷で言われる mds_stores の暴走がこれで解決できるかというと、違うだろうなと思います。ただ、TimeMachine のデータが原因になっていることは結構ありそうだなと思いました。
*追記 安心したのも束の間、Mac 再起動で mds_stores 復活
それから一日非常に快適に使えていましたが、訳あってMacを再起動しました。
するとTimeMachineとして設定したHDDのパスワードを求められ、入力するとまた断続的なアクセスが始まってしまいました。
アクティビティモニタを見るとやはり mds 関連が居座っています。
新しいバックアップに対するインデックスが始まったのかと思って、これも3〜4時間待ってみましたが終わりません。
この時点で TimeMachine として使用しているHDDは2台です。
この時、断続的アクセスがあるのは片方のHDDだけだと気づきます。
このHDDを使用解除してみる
このアクセスが止まらない方の TimeMachime パーテーションを初期化して、TimeMachine としての使用を止めてみました。どうせ1日分のバックアップしかない状態なので。
これで mds_stores 止まってくれないかなあと最後の望みだったのですが….
今度はもう片方のHDDへの断続的アクセスが始まってしまいました。これも終わる気配がない。
万事休す。
まさかまさかの
失意のどん底で、なんでかはわかりませんがなんとなく「TimeMachineに入る」で中身を見てみました。
すると TimeMachine の初期画面は表示されるものの動かせない状態だと気づきます。
以前のバックアップへ遡れない感じです。
矢印のアイコンをクリックしたり、画面右のバーを操作してみたりしてみましたが動きません。
あれこれやっているうちにやっと動かせるようになりました。(一回 TimeMachine を閉じてもう一度入ったような記憶もあります)
するとどうでしょう。
HDDへのアクセスが止まっています。アクティビティモニターで見ても mds_stores が動いてません。
やったぜ!!
なんでかわからんけど。
再現するかチェック
これが偶然なのかどうか、もう片方のHDDでチェックしてみました。
- フォーマットして新しい TimeMachine 用ディスクとして登録
- バックアップ開始
- 初回バックアップ完了後の mds mds_stores の常駐なし(言い方がよくないかもしれない)、HDDへの断続的アクセスもなし
- Macを再起動
- mds mds_stores の常駐、HDDへの断続的アクセス確認 →再現
- 「TimeMachineに入る」。中身が操作できない。
- 少し待ってTimeMachineを閉じる
- もう一度「TimeMachineに入る」。中身が操作可能になっていることを確認
- 外付けHDDへの断続的アクセスが停止。mds mds_stores 停止 →再現
再現できました。
どういうことなのか
なぜなのかはよくわかりません。
「TimeMachineに入る」で最初操作できないのはやはりインデックスが終わっていないから?
mds_stores によるHDDへの断続的アクセスはやはりインデックスを再構築しているのか、もしそうだとしたらなぜ終わらないのか?
「TimeMachineに入る」で強制的にインデックスしている?
よくわかりません。
「TimeMachine に入る」がなんらかのトリガーになってるっぽいですが…
新しくバックアップを作成する必要はなかったかもしれません。
とりあえず、「TimeMachine に入る」で中身を確認していたら mds_stores 止まりました。
まあ…解決したので良しとします。
しかしながら先に言ったように、同じ状況の人がそんなにいるかはわかりませんし、巷で言われる mds の暴走がこれで解決するかは微妙です。
また再発することは十分有り得そうなので何かあったら追記していきます。
追記:再起動のたびに mds_stores は復活してしまうが
Mac を再起動するたびに mds_stores は復活してしまいますが、やはり TimeMachine に入って中身を操作できるようになると止まります。
バックアップ作成時など必要な時は普通にmds動きます。当たり前ですけど。
まとめ
おそらくバックアップを作り直したのはあまり意味がなかったのではないかと思ってます。
それを除いた、mds_stores と関連プログラムが止まるまでの(今のところ再現性のある)流れです。
- 「TimeMachine に入る」
- 中身がコントロール不能(反応しない)なので、しばらくしたら(30秒程度) 一旦 TimeMachine を閉じる
- 再び「TimeMachine に入る」
- 以前のバックアップをクリックしてみたり、遡ってみたり色々操作をしてみる
- 操作が効くようになったら(以前のバックアップの中身が自由に見れるようになったら) TimeMachine を閉じる
- アクティビティモニターで mds_stores や mds が停まっている、HDDへのアクセスが止まっていることを確認
調べてみると、mds 関連プログラムの暴走を止めるには基本的に対象を Spotlight から外すか、そもそもSpotlight を無効にするかしか情報がありません。
でもSpotlight を無効にすると不具合がでるアプリもあると聞きます。そもそもOS標準の機能を無効にするのもなんだかなあという気もします。
なので、全てのケースで解決するとは思えませんが、Spotlight を無効にせずに済むこの方法を試してみるのもいいんじゃないでしょうか?特にデメリットないですし。
追記:OSを Monterey にアップデートしたら
その後、時間に余裕が出来たので macOS を Monterey にアップデートしました。
アップデート直後から mds 関連プログラムが動いて外付けHDDへのアクセスが続きました。
これも半日程度は放置してみましたがやっぱり終わりません。
それから 画面上部のツールバーを見てみるとTimeMachine の新しいバックアップの作成は終わっていたので、改めて TimeMachine に入ってみるとやはり操作が効かない状態になっていて、色々クリックしてみたり、一旦閉じて再度入ってみたりしていると操作が効くようになり、それと同時に mds 、mds_stores は止まりました。