Mac OS X Lion Spotlight 最佳化指南,lionspotlight
新買的mbp突然間用不了spotlight了,
看到了這篇文章用裡面的關掉spolight再重開spotlight解決。
原帖連結: Mac OS X Lion Spotlight 最佳化指南http://bbs.feng.com/read-htm-tid-4008789.html
Spotlight是一個讓我又愛又恨的東西,一方面他確實相當好用,但是另外一方面,他也確實佔用了不少系統資源,在進行大量檔案操作的時候,經常將CPU佔滿,可以將我可憐的mbp燒到80度左右,所以不能不好好的折騰他一下了,這裡總結一些這兩天摸索出來的Spotlight調優的方法,希望能對大家也有些協助。 以下最佳化是在Mac OS X Lion 10.7.2 的系統上實踐出來的,其他版本的系統可能有一些不一樣,大家可以Google一下具體的方法,但是基本步驟應該是差不多的。 小蘋果使用Mac現在總時間還不超過一周,所以很多東西理解的可能是不對的(什麼可能啊,是應該吧),有不正確的地方,還請大家多多指正,也歡迎大家來我的部落格多多交流:http://bigasp.com/。
Spotlight簡介
Spotlight是Mac系統中的尋找服務,為了能使尋找更加的迅速,Mac系統會在後台運行一個索引服務,在有檔案操作或者資料更新,如iTunes,Mail等,就會為他們建立一個索引,用於加速Spotlight的尋找。 所以,Spotlight其實分為兩個部分:前台Spotlight的尋找服務Search.bundle,和背景索引服務mds。 最佳化Spotlight,其實就是最佳化這兩個服務。
基本最佳化方案:減少需要索引的內容
根據上面的介紹,那麼我們可以想到,最簡單的最佳化就是減少需要索引的內容。
首先,在Spotlight的設定中選擇我們需要索引的內容。 開啟系統喜好設定->Spotlight,在搜尋結果這個Tab欄內,我們把所有我們不關心的內容全部勾選掉。 我只勾選了:應用程式,系統喜好設定,通訊錄和音樂。這些對我來說夠用了。
然後,將我們不需要索引的檔案夾都加入Spotlight的黑名單。 在系統喜好設定->Spotlight中的隱私Tab中,我們可以選擇那些目錄是Spotlight不用去索引的,我們可以利用這個目錄來大大減少我們需要索引的檔案量。 開啟Finder,點擊菜單中的前往->前往檔案夾,轉到根目錄/, 將檔案夾中除了應用程式和使用者的目錄,全部放入黑名單。
需要注意的是:其實使用者目錄也可以放入黑名單,Spotlight中顯示的音樂,連絡人和郵件,其實是靠和這些軟體資料庫直接聯絡來建立索引的,所以和檔案夾的索引沒有太大的聯絡,也可以放入黑名單。這裡看大家的喜好,我全放進去了。
另外還需要注意的是:這裡需要在Finder裡面顯示所有隱藏檔案,因為一些和系統相關的目錄,如/usr,其實都沒有索引的必要,都可以放入黑名單。如果顯示檔案的方法不會的話,大家可以去Google一下。
最後,我們還需要再設定一下Spotlight需要索引的硬碟,一些移動硬碟和隨身碟什麼的,其實就不需要索引了。 開啟終端,輸入下面的命令:
- # 關閉所有磁碟的索引服務
- sudo mdutil -a -i off
- # 只開啟主硬碟的索引服務,我的主硬碟被掛載到/Volumes/Macintosh HD目錄下(預設設定),大家可以根據具體情況修改。
- sudo mdutil -i on "/Volumes/Macintosh HD"
複製代碼
如果上面的指令執行錯誤,可以使用如下命令來恢複對所有磁碟的索引。
- sudo mdutil -a -i on
複製代碼
好,到此我們已經完成了第一步最佳化了。 此時大家可以看到Spotlight在重建索引了,在我的機器上,原來完全建立一次索引需要2小時,現在只需要幾分鐘了。
替換最佳化方案 I:替換Spotlight的前端部分
OK,在完成基本最佳化方案之後,既然我們已經將Spotlight閹割成了這般田地。那我們乾脆換掉Spotlight使用其他的軟體替代好了。 這裡有一個不錯的免費軟體推薦:Alfred。大家可以直接在App Store中搜尋安裝即可,過程就不贅述了。
隱藏工作列中的Spotlight表徵圖 這個方案問題的關鍵在於:既然Spotlight都不需要了,我們也就不需要顯示它了。 關閉它的方法很簡單,在終端裡面輸入如下指令即可:
- sudo mv /System/Library/CoreServices/Search.bundle /System/Library/CoreServices/Search2.bundle
- ps aux | grep SystemUIServer | grep -v grep | awk '{print $2}' | xargs kill
複製代碼
現在我們就會發現案頭上的Spotlight表徵圖不見了,這一步最佳化也就宣告完成了。
當然想要恢複也很簡單,輸入如下命令即可恢複:
- sudo mv /System/Library/CoreServices/Search2.bundle /System/Library/CoreServices/Search.bundle
- ps aux | grep SystemUIServer | grep -v grep | awk '{print $2}' | xargs kill
複製代碼
替換最佳化方案 II:替換整個Spotlight
完全停止Spotlight的意思是不僅僅關閉掉Spotlight的案頭搜尋,還停止掉Spotlight的後台索引服務。 所以友情提醒:前方有怪獸!將Spotlight關閉之後,依賴於Spotlight的索引服務的軟體將無法正常運行,如Alfred將無法顯示搜尋結果(依賴於Spotlight索引服務mds),請小心處理,如果引起詭異的問題,與筆者無關。
這個方案是我暫時最喜歡的,因為在系統中Spotlight的索引服務還是隨時在啟動並執行,所以它依然會佔用我們的系統資源,而我們又無法控制,完全替換他,才是我們最好的選擇。 好,讓我們開始吧。
完全停止Spotlight後台索引 在完成替換最佳化方案I之後,我們可以輸入如下命令來完全停止Spotlight的索引。
- sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
複製代碼
在輸入完這條指令之後,大家可以查看一下當前系統內是否還存在mds和mdsworker的進程。他們應該都退出了。 至此,Spotlight算是基本被我們給幹掉了。
當然,如果我們後悔了,我們也可以通過如下命令來恢複。
- sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
複製代碼 恢複完成之後,不要忘了檢查基本最佳化方案裡面的內容哦,因為停止後台索引服務後,索引工作也停止了。
安裝替代軟體 那在沒有後台索引服務的情況下,我們還能不能享受到和Spotlight這種類似的功能呢? 這裡再推薦一個小軟體:Launchy。下載頁面:http://www.launchy.net/download.php#osx,我安裝的是2.6 Beta 2的版本。 這款軟體裡面會建立自己的索引,雖然就功能而言,不及Alfred強大,但也已經相差無幾,對於圖片,視頻的索引是否又必要,個人持保留態度,原因相信大家都懂的,所以基本上對我來說已經夠用了。 在這個軟體裡面,我們可以自己設定軟體的索引範圍,或者禁止它自動更新索引,這樣,就可以讓我們最大程度上的控制這個後台服務了。
總結
到此為止,整個Spotlight的最佳化算是完成了,我可憐的mbp溫度終於降低一些了,而且也不會因為大量檔案操作導致溫度飆升了。總的來說,折騰還是有些效果的,希望能對大家也有些協助吧。
=================== 華麗麗的分割線 ===================
2012-02-12 補充 1. Launchy 2.6 Beta和2.5貌似在一些機器上經常Crash,大家可以使用QuickSilver(http://www.blacktree.com/),或者自行搜尋其他軟體來替代,只要是自建索引的就行。 2. 其實如果沒有大量的檔案操作,Spotlight對系統的影響還是不大的,mds佔用CPU一般是3% - 5%左右,沒有太大必要進行最佳化。但是如果發現最近電腦溫度很高,或者電池消耗很快,就可以檢查一下Spotlight,參照這篇文章進行最佳化了。 |