PR

mds_stores、mdworker、mdsプロセスを停止させた方法【酷暑のmacに最適です】

macの温度91度、ファンが6159rpmと高速回転中、mds_storeがCPU使用率トップで稼働中であることがわかる

(この記事はIntel Mac利用時に書いています)冷房つけていても、mds_storeやmdworkerが働き始めるとmacの温度急上昇して困っていた。この記事を読んで試すとmds_stores、mdworker、mdsプロセスのCPU使用率がほぼ0にすることができます。mac野郎なのかの環境では、91度あったmacの温度が、-39度の52度になりましたよ^^

MacBook Air M2 2022に変更(2022/9)しています。

この記事に辿り着いたみなさんもMac野郎なのかと同じようにIntel Macでなんだかファンの音うるさい、本体熱すご、どうやってやれば・・・と検索で辿り着いたかと思います。

これどうやらIntel Mac特有の症状見たいです。M2 Macはこういったこと、今の所起きていません。
本体はほのかに温かくなることあります。底面側風通し良くすることで改善します。

macの温度が高いと、CPUの活動が低下している感じです。mds_storeは通常50%、100%まで回るんですが、91度を超えていると最大でも30%ぐらいでした。

macの温度が91度程度になるとCPUの活動が抑えられ、mds_storeも最大31.6%になることがわかるイメージ

macOS High Sierraの内部で温度を検知して、CPUの活動を抑えているんでしょうね。ここまでできるならmac内の温度が高くなったら自動的にmds_stores、mdworker、mdsなどのプロセスを一時停止してくれればいいのに!って思いませんか?

macOSはそういう仕様ではなく、暑さ関係なく作業を完了させようとガンガン動作していました。

ちなみに、メニューバーにある温度計はFan Control+BitBarで実現できます。(古いmacOSを利用中の方限定:使いたい方はこちら=>https://www.derman.com/Fan-Controlをチェックしてみてください)macOS Mojave、macOS Big Surなど最新OSでは動きませんよ。

そもそもCPU使用率上位に登場することが多いmds_stores、mdworker、mdsってなにやっているの?

mds_stores、mdworker、mdsは、Spotlight関連の機能を実現するためのサービス、プロセスです。

mdsは、Meta Data Serverの略でmac標準機能のSpotlight機能を実現するためのサービスプロセスです。
(Spotlightはスペース+コマンドで呼び出せます)
mdworkerはMeta Data Workerってことになります。メタデータの仕事人ってところでしょうか
mds_storesはMeta Data Server Storesってことになります。メタデータのありかを管理しているようです。
mds_storesは、Time Machineバックアップ実行中にCPU使用率が上がることがあります。おそらく、メタデータはどこにあるの?というTime Machineプロセスの問い合わせに対応しているのかと思っています。

これからご紹介するmds_stores、mdworker、mdsを停止させる方法をやることで、スポットライト機能が一時的に使えない状況になるってことです。スポットライト系の機能を停止させるだけなので、Time Machineが動作するとmds_storesが動き出します。完全停止じゃありませんよ。

mds_stores、mdworker、mdsプロセスを停止させた方法

91度と暑かったので焦って色々やりました。最終的には最後の「Spotlightからストレージ全てを除外する」だけでもいいのかもしれません。
この方法は、常日頃Spotlight愛が止まらないmacユーザーの方にはオススメできません。この方法を試すことでSpotlight機能が一時的にOFFになります。Spotlightってなに?使ったことないけどって方は是非試してみてください。

1) mdutilでindexingをoffに設定=>効果なし

メタデータユーティリティコマンドがあります。これの説明には-i引数でindexingをon/offできると書いてあります。

$ mdutil 
Usage: mdutil -pEsa -i (on|off) -d volume ...
       mdutil -t {volume-path | deviceid} fileid
	Utility to manage Spotlight indexes.
	-p             Publish metadata.
	-i (on|off)    Turn indexing on or off.
	-d             Disable Spotlight activity for volume (re-enable using -i on).
	-E             Erase and rebuild index.
	-s             Print indexing status.
	-t             Resolve files from file id with an optional volume path or device id.
	-a             Apply command to all volumes.
	-V vol         Apply command to all stores on the specified volume.
	-v             Display verbose information.
	-r plugins     Ask the server to reimport files for UTIs claimed by the listed plugin.
NOTE: Run as owner for network homes, otherwise run as root.

mdsやmds_storesはroot権限で動いているのでsudoを使ってroot権限でindexingを停止させます。

$ sudo mdutil -i off

=>アクティビティモニタのCPU使用率は一切変わりませんでした。

2)Spotlightの検索結果を全部オフにする=>効果なし

システム環境設定>Spotlightの検索結果タブで検索したい項目のON/OFFができます。これを全部OFFにします。

システム環境設定>Spotlightの検索結果タブで検索したい項目のON/OFFができます。これを全部OFFにしました。

=>アクティビティモニタのCPU使用率は一切変わりませんでした。

3)mds_storesを強制終了させてみる=>効果なし、逆効果

ここまで失敗続きたったので、mds_storesを強制終了させてみました。強制終了は、アクティビティモニタからプロセスをクリックし、そこから終了ボタンをクリックすることで強制終了させることができます。

mds_storesプロセスを強制終了させるアクティビティモニタのプロセスクリック時の画面

mds_storesプロセスは強制終了させるとクラッシュレポートを作るようです。また自動的にmds_storesプロセスが立ち上がり、復旧します。これによりCPUの使用率がさらに上がり、温度も100度を記録しました。逆効果です。プロセスの強制終了は絶対やめましょう!
=>アクティビティモニタのCPU使用率は逆に上がりました。

4)Spotlightからストレージ全てを除外する=>これです!

システム環境設定>SpotlightのプライバシータブでSpotlightの検索から除外する場所を指定することができます。この除外項目に全てのストレージを追加しました。

システム環境設定>Spotlightのプライバシータブ Macintosh HDを追加すると確認画面が表示されることがわかる

Macintosh HD、USB外付けSSD(work)2つのストレージを除外対象に加えます。試してみる方は、macに物理的にUSB接続、Thunderbolt接続しているストレージを全て除外対象に加えてください。Macintosh HDを追加すると「Spotlightで”Macintosh HD”を検索しないようにしてよろしいですか?」と確認が表示されました。
一部アプリケーションで検索機能が動作しなくなるようです。一旦追加してもマイナスボタンで簡単に除外する場所から削除することができます。「OK」ボタンをクリックして除外する場所に加えています。

さらにUSB外付けSSD(work)も加えました。プラスボタン以外にFinderからドラックアンドドロップ操作でも追加できます。

Macintosh HD、外付けHDD/SSDの全てのストレージをSpotlightのプライバシー除外する場所に追加したことがわかる。

mds_stores、mdworker、mdsプロセスの活動を抑えるとができました!

この「4)Spotlightからストレージ全てを除外する」設定をした直後からmds_stores、mdworker、mdsプロセスのCPU使用率が下がり、ほぼ0%で落ち着くようになりました。(プロセス自体は生きています。)

活動が抑えられ、macの温度が52度、39度下がり、mds_stores、mdworker、mdsプロセスのCPU使用率も上位に来ることがなくなったことがわかる。

=>mds_stores、mdworker、mdsプロセスのCPU使用率がほぼ0になり、上位に登場することがなくなりました。

=>91度あったmacの温度が、-39度の52度になりました。

=>Time Machineが動き始めるとmds_stores、mdsが少し活動しています。

mds_stores、mdworker、mdsプロセスを停止させると困ること

今回の方法でmds_stores、mdworker、mdsプロセスの活動を限りになくゼロに抑えることができました。実際に困ることある?一つだけありました。普段スペース+コマンドキーでSpotlight検索することはないので影響がないかと思ったんですけどね。

=>メールの検索ができません。

メール(macOS High Sierra)で検索しようとすると「メール検索が無効になっています」

検索しようとすると「メール検索が無効になっています」と表示されます。
これだけは許可するように設定変更しようとするとプライバシー設定が複雑になりそうなので諦めました。

検索する際は、プライバシー(除外する場所)からMacintosh HDを削除し、mds_stores、mdworker、mdsプロセスの活動を再開させています。
再インデックス処理が走るので、しばらくした後絞り込み検索できました。

そしてまた、プライバシー(除外する場所)へMacintosh HDを追加します。なんだかとっても非効率・・・もっといい方法ないですかねぇ

まとめ

いかがでしたでしょうか?自分の作業でCPUの使用率が上がり、温度が高くなるのはいいんですが、酷暑の中、macOS裏方さんが働き始めて何もしていないのに温度が高くなるのは納得できないところがありますよね。
そんな方は、是非今回のmds_stores、mdworker、mdsプロセスを停止させた方法を試してみてください。

暑い季節終わったら、プライバシー(除外する場所)から削除すると元に戻せます。

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