Udostępnij za pośrednictwem


Windows 7 對固態硬碟 (SSD) 的支援與常見問題集

 

受到廣泛採用而用於主要存放裝置的固態硬碟 (SSD) 所具備的潛力,令人十分感到興奮,特別是膝上型電腦的使用者及許多使用伺服器的人們。如同引進任何新技術一樣,我們通常需要回到塑造整體系統 (作業系統、裝置支援、應用程式) 的假設,也就是要著眼於使用中技術的效能特性。此篇文章說明我們如何根據目前的 SSD 調整 Windows 7。此一領域瞬息萬變,我們期待未來能不斷找到方法來調整 Windows,同時也期待技術能不斷持續發展,或許可引進新的權衡取捨觀點或挑戰其他基本假設。感謝多個儲存裝置與基礎裝置團隊協助 Michael Fortin 撰寫此篇文章。--Steven

今日,許多固態硬碟 (SSD) 都可以提供改善的效能、更一致的回應能力、延長的電池壽命、迅速的啟動時間,同時能夠降低噪音與震動情況。隨著價格急速下降,大多數分析師預期銷售搭載 SSD 的個人電腦會取代傳統的旋轉式硬碟機 (HDD) 成為主流。

設計 Windows 7 時,我們將 SSD 的運作特性納入考量,並投入許多精力在提高搭配 SSD 使用 Windows 7 的可能性。因此,Windows 7 預設即可在 SSD 上有效地運作,完全不需要客戶涉入處理。在探究 Windows 7 如何自動調整執行方式以在 SSD 上有效地運作之前,讓我們先簡短說明 SSD 的運作特性。

隨機讀取:對 SSD 而言十分流暢

SSD 通常能非常快速地進行隨機存取。因為沒有將旋轉式磁頭定位的機械工作,就此點而言,大部分 SSD 完全擊敗傳統 HDD。因此,性能較優良的 SSD 執行 4 KB 隨機讀取工作的速度幾乎是傳統 HDD的 100 倍,每次讀取的速度大約是 1/10 毫秒對 10 毫秒。

循序讀寫:表現亦佳

循序讀寫操作的效能介於頗佳到極佳之間。因為快閃晶片可配置為平行架構,而且資料可以分散儲存到各晶片上,目前性能較好的 SSD 能以每秒 200 MB 以上的速度進行循序讀取,這幾乎是許多 7200 RPM 磁碟機性能的兩倍。對於循序寫入,我們在比較後發現有些裝置的速度可以大幅超越傳統 HDD,但大多數 SSD 不過差強人意。目前市面上銷售的 SSD 在循序寫入速度方面仍有不少差異。相較之下,可見一些 SSD 的速度大大勝過傳統的 HDD,而其他 SSD 則是稍微落後,甚至有少數 SSD 的效能很差。

隨機寫入與排清:差異非常大

循序寫入在速度上的差異或許值得一提,但與隨機寫入相較,大部分使用者並無法察覺循序寫入對於整體效能的提升。

對於隨機寫入而言,怎樣才算很長一段時間?一般的 HDD 要將 4 KB 隨機資料寫入硬碟的旋轉媒體,通常需花費 7 至 15 毫秒,目前已證實這樣的速度讓人無法接受。因此,大部分 HDD 都會搭載 4 或 8 MB 以上的內部記憶體,並嘗試快取小量隨機寫入資料,而不是等候 7 至 15 毫秒。硬碟會在快取寫入的資料後向 OS 回報成功,即使資料尚未移動至旋轉媒體。我們通常會在數百微秒之後看見快取的寫入作業執行完成,因此這個速度是實際寫入旋轉媒體速度的 10 倍、20 倍或以上。檢查過數千筆遙測記錄的數百萬次磁碟寫入之後,我們觀察到 4 KB 或更小的 IO 工作,有 92% 所花費的時間不到 1 毫秒,有 80% 花費不到 600 微秒,而其中有 48% 令人印象深刻,花費不到 200 微秒。快取確實有用!

我們偶爾才會看到 HDD 苦於處理突發的隨機寫入與排清操作。目前已證實若磁碟機長時間快取太多資料,而積存太多待完成的工作,排清操作又隨之而來時,就容易發生問題。這些排清操作與周圍的 IO 操作會明顯延長回應時間。我們觀察到有些裝置要花費 0.5 至 1 秒來完成個別的 IO 操作,但要恢復較能持續回應的狀態則需十幾秒。由於回應能力下降至讓人感到痛苦的程度,使用者可能會難以忍受。請想一想,單一 IO 操作所需的回應時間可從 200 毫秒到高達 1,000,000 毫秒 (1 秒)。

套用實際的工作負載時,我們觀察到效能最差的 SSD 也需花費非常長的 IO 時間,最多需要 1 秒的時間,才能完成個別的隨機寫入與排清要求。這對於許多工作負載而言極為糟糕,而且會讓人以為整個系統不穩定、沒有回應且反應遲緩。

隨機寫入與排清:為什麼這麼困難?

許多人一開始似乎難以理解為什麼純電子式的 SSD 與傳統的 HDD 相比,處理隨機寫入操作有更多待克服之處。畢竟 SSD 不需要進行搜尋並將磁頭定位在旋轉磁碟的磁軌上,究竟為何隨機寫入操作對於 SSD 而言是困難的挑戰?

這可得費好一番唇舌才能解釋清楚,幸好 Anand 的文章涵蓋許多詳細資料。我們相當鼓勵感興趣的讀者花一點時間閱讀該文章,以及這篇不錯的 USENIX 論文。為了避免與該份文件重複太多,我們只列出少數幾點。

  • 大部分 SSD 是由快閃光電元件 (flash cell) 所構成 快閃光電元件分為SLCMLC兩種。 可以利用 DRAM 來建置 SSD。這樣的 SSD 速度會非常快,但成本亦十分昂貴且需耗用大量電力。但由於這種 SSD 相對地罕見,因此我們將著重於討論較普遍的 NAND 快閃記憶體型的 SSD。未來的 SSD 可能會傾向利用快閃記憶體以外的其他非揮發性記憶體技術。
  • 快閃光電元件實際上是一個陷位 (trap),用來捕捉不喜歡被捉到的電子。 假設在構成位元值 0 的快閃光電元件中放入 100 個電子,如果電子數較少則代表該值為 1,則控制器邏輯對於位元值 0 的可接受範圍,則必須假設為 80 至 120 個電子。因為有些電子可能會跑出陷位,而有些則是在嘗試填入附近的元件時落入陷位,所以必須設定一個範圍。因此,需要一些非常複雜的錯誤校正邏輯,來確保資料完整性。
  • 快閃晶片傾向以複雜的方式排列,例如區塊、die、平面與封裝。 晶片的大小、排列方式、平行處理原則、耗損、相互連結與傳輸速度特性以及運作效能大不相同。
  • 寫入之前必須先清除快閃光電元件。 使用之前,完全無法確認快閃光電元件中是否殘留任何電子,因此在填入電子之前,需要先清除光電元件。清除操作是大規模進行。您不是清除一個光電元件,而是清除一整塊光電元件 (例如 128 KB)。清除時間通常很冗長,得花費一毫秒以上的時間。
  • 快閃會耗損。 快閃光電元件有時會停止運作,無法做為陷位以捕捉電子。如果經常更新的資料 (例如檔案系統記錄檔) 總是儲存在相同的光電元件上,這些光電元件與其他包含甚少寫入資料的光電元件相比會更快耗損。快閃控制器韌體會採用耗損平衡邏輯,讓寫入操作分散到裝置的所有光電元件組。如果維護得當,大部分裝置在工作負載量一般的桌上型電腦/膝上型電腦應可耐用數年。
  • 設計人員必須需要採用一些相當靈巧的裝置物理與工程設計,才能高速捕捉電子、正確無誤地執行以及讓裝置的耗損平均。 並非所有 SSD 製造商都能發展出恰當處置的設計。

效能隨著時間、耗損以及 Trim 操作降低

如上所述,必須先清除快閃區塊與光電元件,然後才能寫入新的位元組。因此,新購買的裝置 (已預先清除所有快閃區塊) 剛購買時的執行效能會比使用一段時間之後的效能更好。雖然我們觀察到會有這種效能降低的情況,但並不認為這會對正常使用造成影響。事實上,除非透過效能評定方式,否則我們不認為使用者會在一般使用期間注意到效能變差。

當然,裝置製造商與 Microsoft 會竭盡所能維持絕佳的效能特性。優良的 SSD 製造商一定會預先清除區塊,以嘗試克服過時 (aging) 問題,因此在一般使用期間就不會影響到效能,或者會維護足夠大的備用區域,以存放短時間內突發的寫入操作。專為企業設計的 SSD 磁碟機最多會保留 50% 的空間,以長時間提供高度持久的寫入效能。

此外,Microsoft 與 SSD 製造商還採用 Trim 操作。在 Windows 7 中,如果 SSD 回報可支援 ATA 通訊協定的資料集管理命令中的 Trim 屬性,NTFS 檔案系統便會要求 ATA 驅動程式在檔案被刪除且可以清除儲存檔案的 SSD 分頁時,對裝置發出該項新操作。有了這項資訊,SSD 就可以規劃以伺機 (且和緩地) 清除相關的區塊,這樣後續的寫入操作便不需要進行區塊清除操作,因為清除的分頁可供重複使用。

Trim 操作還有一個額外的優點,就是透過降低進行許多合併操作的需求,進而協助 SSD 降低耗損。例如,假設有一個 128 KB 的 SSD 區塊中包含 128 KB 的檔案。如果系統刪除該檔案並要求 Trim 操作,SSD 可以避免讓該 SSD 區塊的位元組和後續寫入該區塊的任何其他位元組混合。如此便可降低耗損。

Windows 7 要求 Trim 操作不僅是為了進行檔案刪除操作。Trim 操作已經與下列命令/功能完全整合:磁碟分割層級和磁碟區層級的命令 (例如 Format 和 Delete)、和截斷及壓縮相關的檔案系統命令,以及系統還原 (也稱為磁碟區快照) 功能。

Windows 7 最佳化與預設運作方式摘要

如上所述,今日所有的 SSD 在進行磁碟寫入與磁碟排清方面,仍有許多改進空間。Windows 7 應可在今日的 SSD 上運作良好,因為我們做出許多工程設計變更,在在降低了寫入與排清的頻率。這也讓傳統的 HDD 獲益,但對於今日的 SSD 特別有助益。

Windows 7 將停用 SSD 系統磁碟機上的磁碟重組功能。因為 SSD 在隨機讀取操作方面的執行效能極佳,重組檔案還要應付產生的額外磁碟寫入重組工作,因此這樣做的效果不大。下面的 FAQ 一節會提供一些額外的詳細資料。

在具備良好隨機讀取、隨機寫入與排清效能的 SSD 上,Windows 7 預設會停用 Superfetch、ReadyBoost 以及開機與應用程式啟動預先擷取功能。這些技術全都是為了改善傳統 HDD 的效能而設計,傳統 HDD 的隨機讀取效能無疑就是主要的瓶頸。如需詳細資訊,請參閱常見問題集一節。

因為作業系統的磁碟分割配合以 SSD 的對齊需求建立時,SSD 會以最佳效能執行,Windows 7 中的所有磁碟分割建立工具會以適當的對齊方式放置新建立的磁碟分割。

常見問題集

在開始說明一些常見問題之前,我們想要告訴所有人,我們相信行動裝置與桌上型個人電腦中的 SSD 未來前景會是一片光明。SSD 可以提供改善的效能、更一致的回應能力、延長的電池壽命、更迅速的啟動時間,同時降低噪音與震動情況。隨著價格不斷下降而品質持續提升,我們預期銷售搭載 SSD 的個人電腦會取代傳統的旋轉式 HDD 成為主流。基於此點,我們將工程設計的重心放在確保 Windows 7 使用者在 SSD 上能獲得絕佳體驗。

Windows 7 是否支援 Trim 操作

是。如需詳細資訊,請參閱上述各節。

預設會停用 SSD 上的磁碟重組嗎?

是。只要裝置將自己宣告為 SSD 裝置,自動排程磁碟重組的功能就會排除該裝置上的磁碟分割。此外,如果系統磁碟的隨機讀取效能特性超過每秒 8 MB 的閾值,則同樣也會被排除。此閾值則由內部分析決定。

最終產品會加上隨機讀取閾值測試,以適當辨識出今日市面上少數會將自己宣告為 SSD 的 SSD。每秒 8 MB 的速度是相當保守的速率。雖然我們所測試的 HDD 全部無法達到每秒 8 MB 的速度,但所測試的 SSD 卻全都能超過此閾值。SSD 效能介於每秒 11 MB 到 130 MB 之間。在進行隨機讀取測試的 182 款 HDD 中,只有 6 款 HDD 具有每秒 2 MB 以上的實力。其他 176 款 HDD 的效能則介於每秒 0.8 MB 到 1.6 MB 之間。

SSD 上是否會停用 Superfetch?

是,使用 SSD 的大部分系統都會停用此功能。

如果系統磁碟是 SSD,而 SSD 可適當執行隨機讀取,進行隨機寫入或排清也沒有明顯的問題,如此便會停用 Superfetch、開機預先擷取、應用程式啟動預先擷取、ReadyBoost 以及 ReadDrive 功能。

一開始,我們將所有 SSD 上這類功能全部設定為關閉,但在某些系統上會有明顯的效能衰退情況。我們發現造成效能衰退的根本原因,是一些第一代 SSD 存在相當嚴重的隨機寫入和排清問題,進而導致系統長時間無法讀取磁碟。只要重新啟用 Superfetch 與其他預先擷取功能,便可顯著改善關鍵情況的效能。

是否建議在 SSD 上使用檔案與目錄的 NTFS 壓縮?

壓縮檔案可幫您節省空間,但壓縮和解壓縮操作需要額外的 CPU 週期,也因此行動系統需耗費更多電源。這麼說吧,對於不常修改的目錄與檔案,壓縮是節省寶貴 SSD 空間的好方法,如果空間成本實在高昂,這也是極佳的折衷方案。

不過,我們不建議您壓縮會頻繁寫入的檔案或目錄。您個人的 [文件] 目錄與檔案應該沒有問題,但暫存網際網路目錄或郵件資料夾目錄就不適合,因為這類位置會突發地進行大量檔案寫入操作。

Windows Search 索引子在 SSD 上的運作方式是否不同

否。

Windows 7 是否已最佳化 Bitlocker 的加密程序以在 SSD 上使用

是,針對 NTFS。在磁碟分割上首次設定 Bitlocker 時,會讀取整個磁碟分割、予以加密,然後寫回。完成此操作之後,NTFS 檔案系統就會發出 Trim 命令,協助 SSD 最佳化其運作方式。

我們鼓勵在意資料隱私權與防護的使用者,在其磁碟機 (包括 SSD 在內) 上啟用 Bitlocker。

設定 SSD Media Center 是否會執行任何特殊操作

否。雖然 SSD 的性能確實優於傳統的 HDD,但 SSD 的每 GB 成本與 HDD 相比卻更昂貴。對於大部分使用者,針對媒體錄製工作最佳化的 HDD 是較好的選擇,因為本質上,媒體錄製與播放工作負載大多是循序進行。

寫入快取在 SSD 上是否有意義?如果 SSD 支援寫入快取,Windows 7 是否會執行任何特殊操作?

有些 SSD 製造商會在裝置中併入 RAM,此舉不僅是為了要用於控制邏輯,也是為了要模擬傳統磁碟快取寫入的行為與可能的讀取行為。對於會在動態記憶體快取寫入的裝置,Windows 7 預期會保留排清命令與寫入順序,且至少要與傳統旋轉式磁碟同級。此外,Windows 7 預期在具備寫入快取功能的 SSD 上,可透過使用者設定來停用寫入快取功能,就像是在傳統磁碟上一樣。

使用 SSD 來建立 RAID 是否有意義?

是。透過 HDD RAID 設定而獲得的可靠性與效能優點,SSD RAID 設定亦同樣具備。

應該將分頁檔放在 SSD 上嗎?

是。大部分的分頁檔操作都是小量的隨機讀取或大量的循序寫入操作,而這兩種操作類型 SSD 均能妥善處理。

在檢查過數千筆遙測記錄,並集中檢視分頁檔讀取與寫入操作之後,我們發現:

  • Pagefile.sys 的讀取次數大幅超過 pagefile.sys 的寫入次數,比例約為 40:1。
  • Pagefile.sys 的讀取大小通常相當小,有 67% 會小於或等於 4 KB,而有 88% 會小於 16 KB。
  • Pagefile.sys 的寫入大小則相對地大,有 62% 會大於或等於 128 KB,而有 45% 的大小正好為 1 MB。

事實上,考量一般分頁檔參照模式及 SSD 效能特性,分頁檔比其他檔案更適合放在 SSD 上。

休眠檔案與 SSD 有任何考量嗎?

否,因為 hiberfile.sys 是循序以大量區塊寫入和讀取,因此可以放在 HDD 或 SSD 上。

為了描述 SSD 效能特性 Windows 體驗指數有哪些變更

在 Windows 7 中,有一些新的隨機讀取、隨機寫入以及排清評定。性能較好的 SSD 得分可達 6.5 分以上,甚至可得到 7.9 分。SSD 必須要有優異的隨機讀取速率,而且能彈性處理排清與隨機寫入工作負載,才能獲得上述的得分。

在 Windows 7 的測試期間,如果磁碟 (SSD 或 HDD) 在進行隨機寫入與排清評定時,無法適當執行,那麼就只會得到 1.9、2.9 或之類的分數。對於此種評分方式的意見反應相當一致,大部分人都認為該限定層級過於極端。因此,現在我們只限制有效能問題的 SSD 不能加入新增之 6.0+ 與 7.0+ 的得分範圍。如果 SSD 無法有效率地通過所有評定而被判定為不穩定,則系統會使用類似 Windows Vista 所使用的方式來進行評分,這表示 SSD 不會因為隨機讀取效能比較好而在 Win7 獲得比較高的分數。