測試數據背後所看不到的一環固態硬碟的效能衰退

 

在進入正題之前,小編要先解釋一下這個單元的呈現方式,其實「SSD實驗室」的單元架構類似於「筆電流行報」,在單品介紹之前會有一篇前文,但是固態硬碟並不像筆電一樣每個月會有較多的話題及趨勢,而是呈現一種較為

固定的發展,因此在前文的部分,小編就使用每個月向讀者介紹一點不同固態硬碟技術及知識的方式來呈現。

這個前言,與之後的各別單品介紹通常並不會有一定的關聯,小編每個月會先擬好大約要寫那些東西,而單品的部分則是之後廠商才會送測並發送到小編手上,所以前面的這個部分與單品介紹其實是並不太相關的,但是常常有部分廠商及讀者會有這樣的疑問,因此小編特地先來說明一下。

通常在固態硬碟的報導上,大部分都是使用不同的測試軟體來呈現各種讀寫項目的效能數據,這往往也是在採購固態硬碟時的一個重要參考依據。不過當固態硬碟這一個產品被拿來討論時,避免不了要被提起的就是使用壽命及效能衰退的問題,會有這樣的情形也是因為快閃記憶體先天上的特性所造成,除非未來開發出一種新的儲存媒介,不然也只能藉由控制器及韌體來盡量減少影響。小編這一期要討論的就是關於效能衰退的狀況,這是在一般效能測試時所無法得知的,但是每個人的電腦使用習慣不同、使用的方式也不同,因此會遇到的狀況也不同,所以小編也只能以一種極端的方式來呈現出固態硬碟被使用一段時間之後的效能變化狀況,各位看倌們就請看接下來的報導吧。

 

 

■ 為甚麼固態硬碟會有效能衰退問題?

快閃記憶體的資料複寫方式及特性其實並不來得那麼直接,這種先天上的特性限制也是造成寫入效能衰退的主因。固態硬碟使用的快閃記憶體,最小的資料儲存單位是page,通常來說,這個page大小是4KB,當一個全新的固態硬碟在進行資料寫入時,資料可以直接儲存在page之中,也就可以發揮出原始的記憶體存取速度。通常為了達到較好的儲存效能,控制器並不會乖乖的把資料依序放好,而是採用隨機的方式分散存放,不過當固態硬碟存放了一定比例的資料之後,或是已經完成過一次的資料寫入循環(所有的page都被寫入過一次),就會遇到一個麻煩,因為快閃記憶體要進行資料複寫或更改時,必須要先將原本的page抹除之後(回復成原始的電荷狀態),才可以重新寫入新的資料。
但是資料抹除卻不能單獨對一個page進行動作,而必須以block為單位,這個block的大小通常為512KB,因此就算是只要變更一個4KB page的資料,也必須要先將整個block給讀到暫存記憶體之中,進行資料變更並等待原本的block被抹除之後,才可以再重新寫入。雖然一次寫入512KB資料的速度會比4KB來得快,但是加上資料讀取並寫入到暫存記憶體、以及block的抹除時間,總時間就會要多上許多了,因此當固態硬碟裡的資料分佈狀態越複雜,寫入的效能就會衰退得越多、越明顯,這時候控制器、韌體以及寫入暫存用的快取記憶體就是效能維持的一個很重要角色。

 

 

■ 效能衰退測試

在模擬固態硬碟使用一段時間之後的效能衰退測試上,小編選用了IOMETER這個軟體,這是一套可以手動調整許多不同存取模式的軟體,或許在許多的其他媒體、論壇上會看到有人使用這一個測試程式來呈現測試效能數據,但是因為它可以調整的項目實在是太多了,對於一般使用者來說也較難上手使用,而平面雜誌的版面有限,在無法仔細交代清楚設定的步驟及項目的情況下,避免會有爭議,小編通常不會使用這一套軟體來呈現初步的效能數據。

但是為了進行長時間的寫入動作並觀察其效能衰退,就必須要使用IOMETER這套軟體了,在設定上,小編使用4KB的檔案大小,進行一個半小時的100%隨機寫入,來製造出一個非常混亂的資料存放型態。不過這樣的測試方式其實有點極端,畢竟很少會有這種持續對固態硬碟進行大量4KB隨機寫入的情況發生,在消費性的個人使用環境上,固態硬碟通常也都只是拿來當作系統碟使用而已。這種方式雖然可以很方便地持續進行長時間4KB隨機寫入,但是卻不能夠控制寫入的總資料量,對於存取速度快、IOPS值高,可以大量吞吐資料的產品來說,同樣的時間內被寫入的資料量會遠大於速度較慢的,因此效能衰退的幅度也會比較大。

而測試品方面,則選擇使用SandForce SF-2281及Marvell 88SS9174控制器的產品,這也是目前市面上較常見的兩款SATA 6Gbps介面固態硬碟控制器。容量上使用記憶體總容量均為256GB的產品,但是因為SF-2281控制器特性及控制技術的關係,會隱蔽部分的使用空間來當作損壞區域控管及儲存暫存區使用,因此標示的產品容量為240GB。

電腦DIY測試平台

處理器 Intel Pentium G850 @2.9GHz
主機板 ASRock Z68 Extreme4
顯示卡 AMD RADEON HD 6870 GDDR5 1GB
記憶體 Kingston HyperX DDR3-1600 2GB x2
主要硬碟 OCZ VERTEX 2 SSD 40GB
作業系統 Windows 7 Ultimate 64bit
電源供應器 Seasonic X-650W 80PLUS金牌

 

 

■ SandForce SF-2281的測試情形

SandForce控制器突出的效能是眾所皆知的,其獨特的即時壓縮資料寫入技術,可以讓實際寫入的資料量變小,進而擁有良好的寫入效能,因此也才能夠達到與讀取相差不大的循序寫入成績。但是相信一定有讀者對於其沒有暫存記憶體的設計感到疑問,當需要進行資料複寫時,暫存記憶體的角色及效能就變得相當重要!而沒有暫存記憶體設計的SandForce控制器,其作法是將一部分的快閃記憶體空間給隱藏起來,可以拿來作為寫入暫存使用。並且在閒置時就將這些空間進行回復成原本電荷值的動作,不過快閃記憶體的存取速度還是比不上暫時儲存記憶體,因此SandForce的控制器雖然擁有較好的初期資料存取效能,但最被人詬病的也就是效能衰退的幅度會比較來得大。

而從實際使用IOMETER來進行持續一個半小時的4KB隨機寫入後發現,其IOPS值竟然從原本的79742.81次衰退到只剩下40151.33次,衰退的幅度竟然接近了快一半,這或許是因為其太過強大的初始效能,同時間內寫入的4KB隨機資料次數也比使用其他控制器的產品要來得更多,再加上這種連續且大量的隨機寫入並沒有辦法讓其當作緩存使用的記憶體空間有空來進行抹除資料並恢復原始效能來幫助實際儲存資料的記憶體進行複寫的動作,所以才會有這樣的落差吧。

圖 / 首先使用SF-2281控制器的產品來進行效能衰退的測試

 

 

 

 

圖 / 經過一個半小時的4KB隨機寫入測試之後,存取效能變得很不穩定。

 

 

 

SandForce SF-2281原始成績

測試軟體

測試成績

Iometer

79742.81

AS SSD Benchmark

讀取

寫入

Seq(MB/s)

212.99

236.44

4K(MB/s)

18.53

65.36

4K-64Thrd(MB/s)

151.19

204.16

Acc.time(ms)

0.149

0.261

IOPS-16MB

13.31

14.78

IOPS-4K

4743

16732

IOPS-4K-64Thrd

38705

52266

IOPS-512B

6714

3830

Score

191

293

590

 

 

SandForce SF-2281連續寫入1.5hr之後

測試軟體

測試成績

Iometer

40151.33

AS SSD Benchmark

讀取

寫入

Seq(MB/s)

120.96

29.71

4K(MB/s)

15.70

23.95

4K-64Thrd(MB/s)

80.79

25.21

Acc.time(ms)

0.409

0.394

IOPS-16MB

7.56

1.86

IOPS-4K

4020

6132

IOPS-4K-64Thrd

20683

6453

IOPS-512B

2445

2539

Score

109

52

218

 

 

■ Marvell 88SS9174的測試情形

接著是Marvell的測試部分,市面上越來越多廠商也開始推出使用88SS9174這款控制器的產品了,但是與SandForce原本就有提供一套完整的韌體給固態硬碟製造商的做法不同,使用Marvell控制器的產品,廠商必須改寫原始的基本韌體甚至自行為其撰寫一套適合的韌體才能使用,產品推出的時間上也就會來得比較慢,因此就算是同樣使用這顆控制晶片的產品,效能落差卻會非常地大,這與SandForce的產品較能差別並不大就非常的不同了,但是若是廠商有用心在於韌體開發,那麼就會出現非常令人驚豔的效能或是其他附加功能。

這次測試使用的PLEXTOR M2S PLUS固態硬碟,廠商就在其韌體上寫入了一套獨家的即時還原技術(Instant Restore),不需要經過其他軟體來進行資料清除以回復原始效能,不論使用多久都可以擁有類似初始狀態一樣的效能。實際經過一樣一個半小時的4KB隨機寫入,IOPS值從13022.43僅下降到12314.91,只有衰退5.4%而已,不過其原始效能本來就不高,同樣經過一個半小時之後的資料寫入量當然就比較少,但是這樣少量的效能衰退,也是相當值得讚賞的。

圖 / PLEXTOR M2S PLUS在韌體中就有即時還原技術,可以減少固態硬碟的效能衰退狀況。

 

 

 

圖 / Marvell的控制器必須由廠商自行改寫或是撰寫韌體,因此各家做出來的產品效能差異會來得比較大。

 

 

 

 

圖 / 就算是經過了一個半小時的持續寫入,效能差異也幾乎只是誤差值而已。

 

 

 

Marvell 88SS9174原始成績

測試軟體

測試成績

Iometer

13022.43

AS SSD Benchmark

讀取

寫入

Seq(MB/s)

494.84

334.72

4K(MB/s)

19.29

43.87

4K-64Thrd(MB/s)

81.88

52.57

Acc.time(ms)

0.194

0.084

IOPS-16MB

30.93

20.92

IOPS-4K

4938

11230

IOPS-4K-64Thrd

20960

13459

IOPS-512B

5145

11963

Score

151

130

358

 

 

Marvell 88SS9174連續寫入1.5hr之後

測試軟體

測試成績

Iometer

12314.91

AS SSD Benchmark

讀取

寫入

Seq(MB/s)

489.59

331.42

4K(MB/s)

19.14

41.49

4K-64Thrd(MB/s)

80.06

53.28

Acc.time(ms)

0.196

0.084

IOPS-16MB

30.60

20.71

IOPS-4K

4899

10621

IOPS-4K-64Thrd

20494

13640

IOPS-512B

5102

11856

Score

148

128

352

 

 

 

但是拿原始效能落差就比較大的產品來比較效能衰退似乎也有些不公平,因此小編再補充測試使用Marvell控制器裡效能最好的Crucial m4,雖然小編手上的m4容量僅為128GB,但是4KB 100%隨機寫入IOPS值卻也高達了41251.34,經過1.5小時的寫入測試之後,也只降到38695.75,衰退幅度也只有6.2%而已。

 

圖 / I/O效能較好的Crucial m4經過一個半小時測試之後,IOPS衰退的幅度也不大。

 

 

■ 效能衰退的回復

然而當效能衰退之後該怎麼辦呢?最簡單的方法就是將磁碟區刪除再新增並格式化,但是這種方式並不完全。OCZ、Intel等大廠都有提供Tools可以給使用者下載,可以進行韌體更新並且完全抹除資料以回復原始效能,不過要做這些回復動作,那是勢必就要先將固態硬碟中的資料給備份出來並使用另一個系統來執行,使用上來是有比較不方便的地方。

 

 

■ 期待廠商能在韌體研發上多下工夫

效能衰退的問題並不是沒辦法解決,但要看廠商對於韌體的研發能力,SandForce控制器的技術較為複雜,在韌體的搭配上或許也來得比較困難,但不論是使用何種的控制器,還是希望廠商都能夠努力地改寫韌體並且克服效能率退的問題,若耐用度及效能衰退這兩大問題可以被解決,在售價上又可以較為合理,固態硬碟也可以界廣泛地被大眾所接受並使用吧!

 

 

臉書留言