かれ4

かれこれ4個目のブログ

やたらmds_storesがCPUを喰っている時に確認すること

f:id:tottokug:20151110103508p:plain

gitを使っている場合、大きめのcommitをしたり、大きめのリポジトリをcloneしてきたりすると.gitの中がspotlightの検索対象になってしまう。
このせいでmds_storesがCPU喰ってしまう事がある。


心当たりがあれば、以下の方法でspotlightのindexから.gitを除外すると良いと思う。

spotlightの除外の設定は

/.Spotlight-V100/VolumeConfiguration.plist

に書いてある

        <key>Exclusions</key>
        <array/>

が対象になる。

plistファイルなので、直接書き換えてもいいが、
defaults で

$ sudo defaults write /.Spotlight-V100/VolumeConfiguration.plist Exclusions -array-add 'path/to/exclude'

これで設定が可能になる

まずは今の設定の確認をすると空っぽなことも確認出来る。

$ sudo  defaults read /.Spotlight-V100/VolumeConfiguration.plist Exclusions
(
)

一個一個設定するのも大変なので、

$ sudo locate .git |grep "/.git$"  | xargs -I {} defaults write /.Spotlight-V100/VolumeConfiguration.plist Exclusions -array-add  {}
$ 
(
    "/Users/user/repos/github.com/OurCompany/tools/.git",
    "/Users/user/repos/github.com/OurCompanylab/OurCompanylab-sdk-java/.git",
    "/Users/user/repos/github.com/OurCompanylab/commons/.git",
    "/Users/user/repos/github.com/OurCompanylab/master-db/.git",
    "/Users/user/repos/github.com/OurCompanylab/matching/.git",
    "/Users/user/repos/github.com/env-OurCompany-router/.git",
    "/Users/user/repos/github.com/machine-learning/.git",
    "/Users/user/repos/github.com/OurCompany/OurService/.git",
    "/Users/user/repos/github.com/OurCompany/OurService/OurService_kaizen_batch/.git",
    "/Users/user/repos/github.com/OurCompany/OurService/OurService_learn/.git",
〜略〜

無事に.gitディレクトリがExcludeに入った。

リセットしたいときは

$ sudo defaults write /.Spotlight-V100/VolumeConfiguration.plist Exclusions -array