Spotlight(mds)とTime Machine問題

High SierraでSpotlight停止のほうが、新しい記事ですので、そちらを参照ください。


もともと「LionでTime Machine用のディスクをSpotlight対象から除外してはいけない」というページでしたが、「Spotlight(mds)とTime Machine問題」として、育ててゆきます。

Spotlightとの闘い

Spotlight登場以降、僕の環境では、Spotlightがまともに動いたことがありません。いつもmdsプロセスや、mdworkerプロセスにCPU、メモリ、仮想メモリを占有されて、そのときどきのOSにあわせたSpotlight停止方法を探してきました*1

が、そもそもSpotlightは、システムのいろんなところで使われているっぽいので、根元から停止してしまうのはどうかなと思っていました。ので、途中からは環境設定のプライバシー設定に登録をすることで対応していました。

しかし、あるとき(Lion)からTime Machineを使うことにしたのですが、このTime Machineがまたくせものでした。このページの下の方に詳述していますが、Time Machineを使うときには、Time Machine対象ディスクを除外すると別のトラブルに見舞われるのです。

ので、プライバシー設定はさておいて、いわゆるSpotlightのトラブル時の諸対応を一通り何回もやりました。いちおう主たるものを下記します。

このトラブルはMountain Lionになっても改善されませんでした。

結局、Spotlight停止

いろんな検索キーワードを試していつも対処法を探していたのですが、以下ページにたどり着きました。

Time Machineが異常に遅い:Apple サポートコミュニティ

ここを経由して

10.7.5 で Time Machine が遅すぎる (解決 ?) - thyVikings:iMac, iPad, iMat by aged engine

に到着*2し、ああやっぱりか、とSpotlight停止に踏み切りましたところ、Time Machineも快適に動くようになりました。

いちおうコマンド再掲させていただきます。

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

Spotlightを復活するときは下記。

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
sudo mdutil -i on /
sudo mdutil -i on “/Volumes/LaCie/”

というわけで、これでしばらく様子見ですが、いちおうこのページにかつて記載してあった、文章も残しておきます。

LionでTime Machine用のディスクをSpotlight対象から除外してはいけない

mdsプロセスや、mdworkerプロセスがCPUやメモリを占有してしまって極端に動作が遅くなることが頻発したので、Mac OS XにSpotlightが実装されてからこっち、OSのバージョンアップをしても、いつもSpotlightを何らかの方法でオフにし続けてきました。

10.7 LionになってもやはりSpotlightを使わないようにしていたのですが、lionのSpotlightの環境設定で「プライバシー」という項目があることに気づきまして、ここにハードディスクを丸ごと登録してしまって喜んでおりました。

んが、落とし穴が。

Mac OS X 10.7 Help: Spotlight preferences

If you add a Time Machine backup disk to the privacy list, you continue to see messages that Spotlight is indexing your backup disk. This indexing is necessary for Time Machine to function properly and can't be disabled. Spotlight excludes from searches any items you store on your backup disk that are not part of a Time Machine backup.

LionになってからTime Machineを使いだしたのですが、たしかに上述の現象が起こって、Time Machine ハードディスクをここに登録してしまうと、「インデクスを作成中」からまったく動かなくなってしまうのです。

ちょっとぐらい動きが重たくなっても、Time MachineハードディスクをSpotlightから除外してはだめ、ということですね。

だったら、「一部のアプリケーションで不具合が出るかも」なんて言い方でなく、もうちょっとわかりやすいエラーメッセージを出してくれればいいのに :-(

追記:
Time Machineって、Time Machineハードディスクと接続していないときには、/Volumes/MobileBackups/ にローカルスナップショットを作るようです。

Time Machine - Frequently Asked Questions 30. What are Local Snapshots?

んで、未確認ではあるんですが、Spotlightの除外項目に自分自身のハードディスクを登録しちゃうと、たぶんこのローカルスナップショットでも問題が出てるんじゃないかと思うのです。

まあ、よっぽどのSpotlight嫌いでなければ、本体のハードドライブを登録するなんて人はいないと思いますが、Spotlightの「プライバシー」への登録は、登録時にメッセージのでないものだけを登録するなど、慎重に行った方が良さそうです。

追々記:

いや、どうもローカルスナップショットとSpotlightはあんまり関係ないみたい。

追々々記:

このあたりがTime MachineとSpotlight問題の解決どころだろうと思っていたのですが、どうもちがうみたい。

その後、Time Machineを再構築して、Spotlightもなるべくデフォルトに近い状態で使ってみたのだけれども、Time Machine用HDをつないだとたん、mdsがメモリを占有しちゃう。

HDを外せば一気に収まるので、因果関係はほぼ明らかなのだけど、つまりは僕の環境では、Time Machineは使えない、という結論になりそう。

残念。

バックアップは必要なので、なにか別途バックアップの仕組みを考えた方がよさそう。

それにしても、mds/spotlightまわりはもうちょっと何とかならないもんですかね :-(


  • *1 個人的にはGyazMailが原因なんじゃないかなと思っています。非常に使いやすいメーラなのですが、仲間の端末のうち、GyazMailの入っている端末とそうでない端末とで、Spotlightがらみのトラブルの頻度が違うので
  • *2 thyVikingsさんのページは、ps(プロセス)がどう動いているかを教えてくれて、このトラブルの根の深さをわからせてくれるよい記事だと思いました。

ジャンル: Mac