詞彙表/你會看到的程序

mds_stores和mdworker

又稱:mds,Spotlight索引

簡短回答

mds、mds_stores和mdworker是建立和維護Spotlight搜尋索引的macOS程序。mds是後設資料伺服器,mdworker程序則負責掃描檔案、讀取其內容和後設資料,讓它們能被搜尋到。

Spotlight會為你的檔案、App、郵件和其他資料保留一份本機索引,讓搜尋很快就有結果。加入或更改檔案,或連接磁碟時,mdworker會讀取它們,mds和mds_stores則會更新索引。

在macOS更新後、遷移到新Mac後、從備份回復後,或拷貝大量檔案進來時,大量索引是正常的。索引更新完成後就會平靜下來。

mds_stores為什麼使用這麼多CPU

索引所需的CPU和磁碟活動,與需要索引的量成正比。為一整個裝滿的磁碟重新建立索引可能要花上一段時間。不斷變動的檔案夾,例如建置輸出、大型快取或虛擬機器映像檔,只要持續變動,就會讓Spotlight一直忙個不停。

同時有好幾個mdworker程序是正常的。Spotlight會執行多個程序來平行掃描檔案。

如何讓Spotlight不索引某個檔案夾

打開「系統設定」,前往「Spotlight」(部分版本為「Siri與Spotlight」),按一下「搜尋隱私權」,然後加入該磁碟或檔案夾。Spotlight就會停止索引它,也不再於搜尋結果中顯示。

適合排除的是你從不搜尋、又經常變動的檔案夾,例如建置目錄、套件快取,或存放虛擬機器的檔案夾。

什麼時候該重建索引

如果索引似乎永遠做不完,或搜尋結果不正確,Apple建議重建索引:把該磁碟或檔案夾加入「搜尋隱私權」列表,等幾秒鐘,再將它移除。Spotlight會重新索引該位置,mds_stores也會因此忙上一陣子。

如何查看Spotlight是否正在製作索引

活動監視器會顯示相關程序,「終端機」則能告訴你某個磁碟是否開啟了索引功能。

  1. 在活動監視器中,按一下「CPU」標籤頁,然後在搜尋欄位中輸入md。你會看到mds、mds_stores,以及一個或多個mdworker或mdworker_shared程序。
  2. 觀察它們的「% CPU」一分鐘。很低或為零,表示Spotlight處於閒置。持續有活動,表示它還在處理檔案。
  3. 按一下「磁碟」標籤頁,看同樣這些程序的「讀取的位元組」欄位。製作索引會讀取大量資料,所以數字一直增加,就表示掃描還在進行。
  4. 在「終端機」中執行mdutil -s /,查看啟動磁碟的索引狀態。如果Spotlight設定為替該磁碟製作索引,它會顯示Indexing enabled.。想查看其他磁碟,就把/換成它的路徑,例如/Volumes/Backup。

Spotlight製作索引要多久?

這要看有多少檔案需要製作索引、磁碟有多快,以及Mac同時在忙多少其他工作。替大型磁碟製作完整索引,比補上幾個變更過的檔案要久得多;同一台Mac可能某天很快就完成,在大量拷貝或macOS更新之後卻要好幾個小時。

更值得問的是它有沒有進展。如果mds_stores和mdworker在幾個小時內逐漸安靜下來,就快完成了。如果它們日復一日都很忙,不是有東西不停在更改檔案,就是索引需要重建。

索引一直做不完的常見原因

如果在更新或移轉之後很久,Spotlight仍然很忙,就去找一個一直在變動的位置。

  • 經常被重寫的建置輸出、node_modules或套件快取。
  • 使用中會不斷變動的虛擬機器磁碟映像檔或大型資料庫。
  • 另一個App不停寫入的檔案夾,例如下載或同步檔案夾。
  • 經常接上又退出的外接磁碟機,每次裝載時Spotlight都會檢查它。
  • 索引已損壞,這時從「搜尋隱私權」重建索引會有幫助。

不要做的事

不要為了省CPU而替整個啟動磁碟關閉Spotlight。其他功能也依賴這份索引,包括在Finder、「郵件」和其他App中搜尋。只排除你不需要搜尋的檔案夾就好。

結束mdworker或mds_stores並不會停止製作索引,因為macOS會再啟動它們,它們也會從中斷的地方繼續。如果你開啟了Vitals的選用輔助程式,它依程序保存、最長一年的歷史記錄,能讓你輕鬆看出索引是在逐漸收尾,還是每天都捲土重來。

大家常問的問題

Mac上的mds_stores是什麼?

它是維護Spotlight搜尋索引的程序之一,屬於macOS的一部分。

mdworker為什麼一直在執行?

mdworker會為Spotlight掃描新增和更改過的檔案。在更新、遷移之後,或大量檔案變動時,它會頻繁執行,等索引跟上後就會安靜下來。

結束mds_stores安全嗎?

結束它幫助不大,因為macOS會再次啟動它,索引也會繼續。若要讓某個位置不被索引,請在Spotlight設定中將它加入「搜尋隱私權」。

mdworker_shared是什麼?

它是較新版本macOS中Spotlight工作程序的名稱。和mdworker一樣,它會掃描檔案,並把找到的內容交給mds編入索引。

怎麼知道Spotlight索引已經做完?

在活動監視器中,mds_stores和mdworker程序的CPU用量降到很低或為零,並維持不變。它們在「磁碟」標籤頁中的「讀取的位元組」也不再增加。

Spotlight會替外接磁碟機製作索引嗎?

會,只要接上就會,除非你把它們加入「搜尋隱私權」。執行mdutil -s /Volumes/DriveName可以查看某個磁碟機的索引狀態。

相關詞條

逐步教學:Mac為什麼這麼慢。

想找比活動監視器更好的工具?請參閱Mac上最好用的活動監視器替代方案,或瀏覽詞彙表中的所有詞條。