本帖最後由 Niel 於 2011-3-28 14:37 編輯
Rules of thumb:
- Controller: 買SSD之前,應先清楚SSD是用甚麼牌子的controller,這很大程度決定了一隻SSD的效能及壽命。
- NAND Flash: 同一容量的SSD可能使用了不同write cycle的NAND flash,這一個資料應該比較難找到。現時(2011)大多數MLC SSD都使用了25nm (3k-5k write cycle)的NAND Flash,配合上一個好的controller,壽命應該不是一般消費者要擔心的問題。隨著有更多不同類型的NAND flash推出市場,如eMLC,不同的用戶要因應自己的需要去選擇適合自己的SSD。
- AHCI: 有的就一定要開啟。
- Operating System: Windows 7的用家不太需要進行優化,文中的Tips有一些主要是為節省空間而設。
- Enjoy: 享受SSD的速度,不要盲目的去相信過時及不切實際的優化。優化了之後,當SSD作一般的Hard disk使用就可以了。
前言
多謝大家觀看這篇文章,本文章分為三個部份
1. 基本技巧: 必須的優化技巧
2. 進階技巧: 主要為非Windows 7及進階用家而設的
3. Mythbuster: 破除一些錯誤或含糊的優化技巧
4. 其他相關文章
建議使用以下的優化前先備份系統
測試環境
Intel i5 750 @ 3.2GHz
Asus P7P55D-E Pro
Supertalent DDR3 1600 @ 6-8-6-20 1T
OCZ Vertex 2 60GB FW1.11
Western Digital 6400AAKS
Windows 7 Professional
Intel RST 9.6.0.1014
基本技巧
留意Firmware更新
有時候能給予SSD速度上的提升及修正問題
官方下載: http://www.ocztechnology.com/ssd_tools/OCZ_Vertex_2,_Vertex_LE,_Agility_2/
保留一定數量的可用空間
一般SSD如果要保持SSD的高速,用家需要保留10%左右的空間,而Vertex 2使用了SandForce SF1200系列控制器,SSD內有一定數量的備用Flash Block (Over-provisioning)去作Ware leveling(增長壽命)及加速用(Vertex 2有28%備用空間,Vertex 2E有13%),所以Vertex 2對於可用空間的減少而對性能的影響比其他SSD低(大多SSD只有少於7%的備用空間)。
不要經常使用Eraser, HDDErase, Hard Disk Wipe Tool等軟件
這類軟件的確可以回復SSD的效能,可是卻會有效地縮減SSD的壽命。而且Vertex 2的GC (Garbage Collection)能力相當之強,經過多次ATTO及AS SSD Benchmark之後也沒有出現失速的情況。筆者建議用家不需要使用此類軟件。(如果真的出現失速,大家可參考進階篇 – 真的失速怎麼辦)
留心閣下使用的測速軟件
基於SandForce SF1200/1500的特別設計(對數據使用了壓縮),Vertex 2的Write Amplification可以低於1,亦是Vertex 2隨機寫入如此高速的原因。可是有一類型的測速軟件,如AS SSD Benchmark,Crystal Disk Mark等等,使用了隨機數據(Random Data)作測試,由於此類型數據不能有效被壓縮,Write Amplification亦會提升,對SSD損耗更大。所以OCZ官方推薦使用ATTO及IOMeter等作測速軟件,因為這些軟件產生的數據比較接近日常的使用模式(可有效被壓縮),而且對SSD損耗不高。
正確的Sector Alignment
安裝Windows Vista及Windows 7時會自動Align Sector,如果你不確定你的SSD是否已Align的話,你可以使用AS SSD Benchmark。
紅圈內為OK,即已正確Align
紅圈內為BAD,即Alignment不正確
如閣下想安裝其他OS或Windows XP,就需要手動Align,詳細可參閱: http://www.ocztechnologyforum.com/forum/showthread.php?55238-Guide-for-Win-Xp-installation-with-Diskpar-(alignment)-nLite-Ramdrive-Page-file-Tweaks-Browser-Tweaks-My-Doc-folder-move-and-Print-Spooler-on-Vertex
如果你已安裝了作業系統的話,可以試用Paragon Partition Management內的Alignment Tool (30天試用) ,詳細可參閱:
http://www.ocztechnologyforum.com/forum/showthread.php?72550-Paragon-Alignment-Tool-2.0-Easily-Aligns-(and-Re-Aligns)-Your-SSD-Drives-amp-Partitions-On-The-Fly!
使用優化的Sector Size
ATTO (Version 2.46, Queue Depth=10, Intel RST 9.6.0.1014, 加入WD 6400AAKS作對比)
在測試中可看到Vertex 2在NTFS檔案系統中使用4KB Sector能夠達到最高的連續讀寫效能,再大的Sector Size對速度也沒有增長,而4KB Sector亦是Windows 7的Default Sector Size。
啟動AHCI mode
未安裝Windows
1. 在BIOS內把Storage Controller由IDE Mode轉為AHCI mode
2. 安裝Windows時,會自動安裝“Standard AHCI 1.0 Serial ATA Controller”的Microsoft Driver (如安裝Windows XP或之前的板本,需在安裝時按F6向系統提供Driver)
已安裝Windows
1. 按 Ctrl + R 快捷鍵
2. 在「執行」鍵入 regedit
3. 瀏覽到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\Services\msahci,將”Start”的DWORD值改成0
4. 在BIOS內把Storage Controller由IDE Mode轉為AHCI mode
確保TRIM指令的正確執行
TRIM指令的正確執行需要一個支援的環境外,還需要正確的設定。指令由OS發出,再經由儲存控制器將指令傳到SSD。
設定作業系統 (以Windows 7為例及需要系統管理員權限)
1. 按「開始」
2. 在「搜尋」鍵入cmd
3. 在cmd.exe上按滑鼠右鍵,再按「以系統管理員身份執行」
4. 在命令提示字元 (Command Prompt) 中鍵入fsutil behavior query disabledeletenotify
5. 如結果為1,代表TRIM指令沒有開啟;如為0,TRIM指令已啟動。
要啟動TRIM指令,鍵入fsutil behavior set disabledeletenotify 0
要關閉TRIM指令,鍵入fsutil behavior set disabledeletenotify 1
更新儲存控制器(Storage Controller)的driver及CPU省電功能的影響
1. 按 Ctrl + R 快捷鍵
2. 在「執行」鍵入 devmgmt.msc
3. 在「裝置管理員」中,選擇IDE ATA/ATAPI控制器或儲存控制器 (IDE ATA/ATAPI Controller or Storage Controller)
4. 如當中出現 “Standard AHCI 1.0 Serial ATA Controller”,代表電腦正在使用Microsoft的ACHI driver,這driver能傳送TRIM指令給SSD。
可是根據SandForce,這driver並不支援最新的ATA協定,引致出現刪除超過4GB的檔案時,SSD不能正確執行作業系統的TRIM指令。(例如當刪除一個8GB的檔案時,SSD只能對開頭4GB的資料執行TRIM指令)
Intel晶片組用家:建議安裝Intel Rapid Storage Technology Driver,此Driver能夠正確對應TRIM指令及最新的ATA協定,,而且對速度有所提升。
http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=18859
AMD晶片組用家:截至AMD AHCI Driver 10.7,AMD還沒有提供支援TRIM的Driver供用家下載,如果大家不想依賴SSD的Garbage Collection,本人建議大家繼續使用Microsoft的AHCI driver,而且每次不刪除多於4GB的資料。(Update 20101223: AMD AHCI Driver 10.9 已經支援TRIM,建議大家使用。)
下圖是Vertex 2 60GB於不同Driver的性能比較:
先看ATTO (Version 2.46, Queue Depth=4, 4KB Sector)
由於IDE是一個舊制式,缺乏了AHCI的Write Combination、Command Queuing等功能(Vertex 2支援32 Queue Depth),所以從上圖可以看到IDE大幅落後於AHCI。而Intel Rapid Storage Technology Driver比Microsoft的再有速度上的增加,大家可參考下圖。
再看AS SSD Benchmark (Version 1.5.3784.37609, 4KB Sector, Speedsteps ON, C1E ON)
在這部份筆者亦加入了CPU省電功能對SSD的影響(Intel C-States),從測試可看到依然是Intel Rapid Storage Technology Driver領先,IDE亦在多工的測試繼續大幅落後於AHCI。而C-States省電功能的確對SSD的速度有所影響,可是影響不明顯,筆者亦不建議大家放棄C-States。
進階技巧
停用硬碟重組 (Windows 7 會自動停用)
不同於傳統硬碟,SSD是不需要重組的,而且硬碟重組會為SSD帶來無謂的寫入工作。
停用Prefetcher (Windows 7 會自動停用)
1. 按 Ctrl + R 快捷鍵
2. 在「執行」鍵入 regedit
3. 瀏覽到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlset/Control/Session Manager/Memory Management/PrefetchParameters,將”EnablePrefetcher”的DWORD值改成0
停用TurboBoost (Windows 7 會自動停用)
1. 按 Ctrl + R 快捷鍵
2. 在「執行」鍵入 services.msc
3. 尋找TurboBoost的項目,之後按右鍵,選擇內容
4. 在啟動類型選擇「停用」
停用Superfetch (Windows 7 會自動停用)
1. 按 Ctrl + R 快捷鍵
2. 在「執行」鍵入 services.msc
3. 尋找Superfetch的項目,之後按右鍵,選擇內容
4. 在啟動類型選擇「停用」
將Windows的暫存檔案移到硬碟上 (節省空間,對壽命有少許幫助)
1. 按 Ctrl + R 快捷鍵
2. 在「執行」鍵入 control sysdm.cpl
3. 到「進階」>>「環境變數」
4. 在「系統變數」及「使用者變數」中尋找TEMP及TMP
5. 將以上路徑改到硬碟上,例如D:\Temp
將瀏覽器的暫存檔案移到硬碟上 (節省空間)
修改/停用Indexing Service目錄的位置 (原因可參閱Mythbuster)
修改
1. 開啟「控制台」>>「索引服務」
2. 更改「索引位置」由SSD到HD上
停用
1. 按 Ctrl + R 快捷鍵
2. 在「執行」鍵入 services.msc
3. 尋找Windows Search的項目,之後按右鍵,選擇內容
4. 在啟動類型選擇「停用」
真的失速怎麼辦?
如果你的Vertex 2出現失速,而你亦在使用Windows 7及正確設定了TRIM指令,你可以先用SSD TRIM 去嘗試回復速度。
SSD TRIM Tool for Vertex 2:
http://www.ocztechnologyforum.com/forum/showthread.php?73888-Here-s-a-tool-to-force-TRIM-your-entire-drive
如果出現嚴重失速而且讓電腦閒置數小時之後還沒有解決的情況,用家可以SecureErase你的SSD。筆者推薦hdparm for Windows,這工具能在Windows中工作:
http://www.ocztechnologyforum.com/forum/showthread.php?73002-Secure-Erase-for-Windows
Mythbuster - 破解網上的流言
網上和坊間經常流傳著一些所謂的系統優化技巧,很多都是未經查證或是不再適合現時的系統,對系統構成風險又或對用戶做成不便。
不應該將pagefile放在SSD上!?!?
根據Microsoft的Engineering Windows 7 Blog,大多pagefile的存取都是細小的隨機讀取和比較大的連續寫入,這正是非常適合SSD特性的。而pagefile的讀取和寫入比例大約是40:1,而讀取是不會影響SSD壽命的。Microsoft指出pagefile比絕大部份其他檔案更適合放在SSD上,而pagefile的寫入比較其他日常作業相比實在太微小。所以關閉/移動pagefile是非常不知的。
http://blogs.msdn.com/b/e7/archive/2009/05/05/support-and-q-a-for-solid-state-drives-and.aspx
應該停用索引服務(Indexing Service)!?!?
停用索引服務是可以減低檔案系統的overhead,可是Windows 7預設只會對數個路徑進行Index,而且再加上SSD的極高隨機存取速度,對系統的影響近乎零。當然,如果用戶不需要對檔案內容索引進行索引的話,筆者會建議關上。如果想保留功能卻存有疑問的話,可以手動修改Indexing Service目錄的位置到硬碟上。
Windows寫入快取的問題
很多用家都認為關閉儲存裝置的Windows寫入快取緩衝區排清(Write-cache buffer flushing)是「優化」技巧之一,其實這是非常錯的觀念。
原因是Windows預設了寫入快取給儲存裝置(所以圖中第一個選項預設有Tick),而Windows的快取管理(Cache Manager)每隔一秒就會自動發出lazy writer程序,優化寫入快取,平衡系統速度及可靠性。而「關閉裝置的Windows寫入快取緩衝區排清」(第二個選項)會令Cache Manager停止自動優化,如果系統出現不穩定又或突然失去電源,數據可能會出現錯誤,更嚴重的會失去資料。其實這個選項其實是適合一些使用Hardware RAID Card而又有BBU的朋友。正因為Windows會自動為用戶平衡效能及可靠性,所以這一個所謂「優化」是不會提升效能,更有可能令效能及可靠性下降。
有用戶更因為「優化」而令Vertex 2性能下降:
http://social.technet.microsoft.com/Forums/en/w7itprohardware/thread/f75b9b77-2dcc-4f97-be89-5503dc13ccf4
有興趣的朋友可以參閱MSDN文章:
http://msdn.microsoft.com/en-us/library/aa364218(VS.85).aspx
坊間一些錯誤/含糊的Registry優化
修改NTFS的Master File Table (MFT)容量
NTFS檔案系統中,每一個檔案都會在MFT中有最少一個條目,而當MFT的容量不足夠的話,MFT會自動增大。而MFT增大時,有機會因為連續的空間不足的話而產生碎片,這對於傳統硬碟是有機會影響效能,可是對SSD完全沒有影響,原因和SSD不需要硬碟重組一樣。所以用家不需要修改NTFS的Master File Table (MFT)容量。
停用NTFS的Last Access Timestamp
根據Microsoft Technet,這一個修改只會在極少數情況下帶來效能增長(一些內有超過70000個資料夾的路徑,或是一些超級頻繁更新的路徑),而且為用戶帶來的風險極大,因為有一些檔案備份工具依賴NTFS的Last Access Timestamp來工作,尤其是使用Remote Storage Service的檔案備份工具,所以筆者建議大家小心處理。
停用NTFS的8.3檔案名稱
同上,這一個修改只會在極少數情況下帶來效能增長(一些內有超過300,000檔案的路徑)。風險是一些舊式軟件可能不能正常工作(尤其是DOS上的軟件)。
最後,要多謝友人借出Vertex 2E 60GB SSD作出測試。
其他相關文章
OCZ Vertex 2, Vertex LE, Agility 2 - 利用OCZ Toolbox讀取SSD的SMART資訊
Vertex 2 - 利用OCZ Toolbox分辨SSD是3Xnm或是2Xnm版本 (購買後)
OCZ Vertex 2, Vertex LE, Agility 2 Firmware 1.23 Update 問題/疑難排解
OCZ Vertex 2, Vertex LE, Agility 2 Firmware 1.24 Update 問題/疑難排解
OCZ Vertex 2, Vertex LE, Agility 2 Firmware 1.32 Update 問題/疑難排解
SSD壽命實測 + 討論
常見wrong concept
SSD不適合作OS drive,因為OS經常over written同一個file,會大大消耗NAND Flash的write cycle。
修正/更新
(2010-09-06) 啟動AHCI的registry path應為HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlset\Services\msahci,已在上文更正。
(2010-10-24) 加入"其他相關文章"類別
(2010-12-20) 加入"Rules of thumb"(2010-12-23) Update(2011-03-28) Firmware 1.32 |