• 沒有找到結果。

Mechanisms Evaluation

4 EXPERIMENTAL RESULT

4.2 Mechanisms Evaluation

在這一節中我們將使用 Random trace 在 MLC(page size 4KB,block size 512KB)

的快閃記憶體下來量測我們所提出的三種多通道的管理機制,因為 Random trace 為小資料的隨機寫入動作,在這樣惡劣的寫入模式下,可以更容易觀察出多通道 管理方法的必要性與優點。

4.2.1 Garbage Collection Planner

這一小節將對 3.2 節中的三種 GC 平行方法作效能測試,分別為原本的同步 運作通道、獨立通道加上 super data block 以及獨立通道加上 cycle stealing。圖表 18 為三種方法使用 Random trace 在 MLC 的快閃記憶體下,不同的通道及不同 overprovision 的比較,其中橫軸為通道的數量,縱軸為 IOPS,圖表 18(a)(b)(c)上 的四條線分別為 1.25%、2.5%、5%、10%的 overprovision。

24

(a) Synchronized channels (b)Independent channel with super data block

(c) Independent channel with cycle stealing

0 100 200 300

1ch 2ch 4ch 8ch

IOPS

Channels Synchronized Channel Indep. with Super Data Block Indep. with Cycle Stealing

(d) Different channel management

圖表 18: Effect of channels with different channels

圖表 18 (a)為同步運作通道在不同比例的 overprovision 下增加通道數量所測 量出來的結果。可以發現隨著通道數量增加,效能不會有明顯的增加,曲線會漸 趨平緩成為開口向下的曲線。由於同步通道對快閃記憶體的最小存取單位為一個 super page,super page 的大小為 page 的大小乘上通道的數量。而 Random trace 每一次寫入的資料只有 4KB,小於 super page 的大小,需要做 read-modify-write,

並消耗掉一個 super log page 的空間。因此空間浪費的缺點與多通道平行 GC 回收 較多空間的優點幾乎抵消了。也就是說在一個通道的時候,每一次寫入消耗一個 單位的空間,每次 GC 回收一個單位的空間;而在 8 通道的時候每一次寫入消耗 8 單位的空間,每次 GC 也回收 8 單位的空間。但是增加通道還是會讓效能有些 微提升,是因為每一個 request 並不只寫入一個 super page。Request 的起始位址 並不會對齊在 page 的邊界上,只會對齊 sector 的邊界(每一個 sector 為 512 bytes),所以 request 會有機會橫跨兩個 super page。在 1 個通道的時候,一個 request 寫入兩個 page 的機率是 7 / 8 = 87.5%;在 8 個通道的時候,一個 request 寫入兩個 page 的機率是 7 / 64 = 10.9%。由此可見增加通道會降低空間的浪費,

25 因而效能有些微的提升。

圖表 18 (b)為獨立通道搭配 super data block 在不同比例的 overprovision 下增 加通道數量所測量出來的結果。可以發現隨著通道數量增加,效能會有明顯的增 加,上升的趨勢成為開口向上的曲線。這是因為獨立通道不會將不同通道的 page 綁死成為 super log page,所以每一個 request 寫入所消耗的空間並不會因為通道 數量增加而增加。因此通道數量增加時,可以充分展現出通道平行 GC 回收更多 空間的特性,如此才是增加通道所該獲得的效能。

圖表 18 (c)為獨立通道搭配 Cycle Stealing 在不同比例的 overprovision 下增加 通道數量所測量出來的結果。這個結果與獨立通道搭配 super data block 的結果 類似,但是 Cycle Stealing 在平行合併的時候可以回收更有效益的空間,所以效能 提升的趨勢會比較多一些。

圖表 18 (d)為三種 GC 平行方法在 10% overprovision 下增加通道數量所測量 出來的結果比較圖。可以看到獨立通道搭配 Cycle Stealing 可以更有效的利用多通 道。隨著通道數量的提升,同步運作的通道在小資料寫入的時候會浪費更多的空 間而使 GC 頻率提升,抵銷掉多通道平行 GC 的優點。合併 super data block 的方 法有可能出現無意義的合併或是過早的合併,使得效能不如 Cycle Stealing,而且 隨著通道數量增加也會讓出現無意義的合併或過早的合併機率增加。

4.2.2 Gating Buffer

這一小節我們將對 Gating Buffer 做測試,藉由調整緩衝區的大小來觀察其效 果。圖表 19 為獨立通道搭配 Cycle Stealing 並使用 Random trace 在 MLC 的快閃記 憶體下,不同緩衝區大小及不同通道數量的比較。緩衝區的管理將以 page 為單 位搭配簡單的 FIFO 來運作。在這邊的縱軸我們使用寫入的次數(write cycles)來 做比較,因為加入 Gating Buffer 主要的目的是要改善寫入的平行度,對於 GC 並 不會有影響。同理,overprovisioning 也不會影響寫入的平行度。

26

圖表 19: Effect of Gating Buffer size

在圖表 19 中,只有一個通道的時候,加大緩衝區空間並不會減少寫入的次 數,因為沒有其他通道可以平行寫入。有四個通道的時候,只需要 16KB 的緩衝 區空間就可以讓效能有大幅度的提升。因為 16KB 為四個 page 的大小,剛好可以 讓四個通道各保留一個 page 的資料,而得以平行寫入。但是因為 request 並不會 每次都要求寫入不同的通道,緩衝區裡面有時候會有一些 page 是屬於同一個通 道的資料,在寫入的時候就無法完全平行寫入,所以繼續增加緩衝區空間仍然可 以增加平行寫入的機會,但是增加的效益就會慢慢減少。在八個通道下,緩衝區 空間超過 8 個 page(32KB)之後,效益也會漸趨平緩。在兩個通道的時候我們 可以看到效果增加的不明顯,其原因是因為隨機寫入 4KB 的資料,有 7 / 8 = 87.5%的機率會寫入兩個 page,所以在兩個通道的時候本身就是平行度很高的結 果,能改善的部分只有 12.5%只寫一個 page,而不平行的部分。

4.2.3 Garbage Collection Throttle

這一小節我們將對 GC Throttle 做測試,藉由調整限制的數量來觀察其效果。

圖表 20 為獨立通道搭配 Cycle Stealing 並使用 Random trace 在 MLC 的快閃記憶體 下,不同 Throttle 限制的數量及不同通道數量的比較。縱軸為 IOPS,橫軸為限制 合併 data block 的數量,128 表示完全不限制(最多就是合併 128 次);8 為限制 合併次數最多為 8,超過的部分就搬到新的 log block 中。

圖表 20 (a)為 2.5% overprovision 的結果,圖表 20 (b) 為 10% overprovision 的 結果。可以看到在 2.5% overprovision 下,一個通道及兩個通道在限制合併次數 為 8 的時候負擔會比較大。在 overprovision 少的情況下或是通道數量少的情況

27

下,因為 GC 的負擔比較沉重,所以搬移到新的 log block 的資料會比較多,所以 負擔會比較大,但是隨著通道數量的增加或是 overprovision 的增加,負擔會逐漸 減輕。

0 50 100 150

128 64 32 16 8

IOPS

Throttle Size

8ch 4ch 2ch 1ch

(a) 2.5% overprovision

0 100 200 300

128 64 32 16 8

IOPS

Throttle Size

8ch 4ch 2ch 1ch

(b) 10% overprovision 圖表 20: Overhead of GC Throttle

圖表 21 是在小資料的隨機寫入下記錄每次 GC 時所執行的合併 data block 數 量,使用的設定為 4k page size, 512k block size, 10% overprovision。圖表 21 (a)為 原始的狀況,圖表 21 (b)為加入 Throttle 限制合併次數為 8 的狀況。可以看到 GC 的時間都限制在合併 8 個 data block 以下。

(a) Original (b) GC Throttle: 8

圖表 21: Effect of GC Throttle

相關文件