• 沒有找到結果。

五、 Performance Evaluation

5.5 The Padding Model

針對章節 3.5 中我們提出在 Hybrid NFTL 架構上的 Padding Model,HitStat 藉由 該 Model 可以算出 BW來動態決定 Padding 條件。這一節我們會分別驗證在 BAST 與 FAST 上,HitStat 動態 Padding 的方式可以收斂接近到用 off-line 方式找到的最佳 Padding設定,這樣可以妥善的利用 Log Block 空間,避免因為過度或過少 Padding 導致額外的 overhead。

表 5, 6 中,每一列的資料代表每一個不同 Padding 設定所得到的數據,而第一 欄 Fixed Padding 的值為 Padding 的設定,如 0.25 表示若 victim Group 所含的 Page 資料個數大於等於 Pages per Block 的四分之一,則會先對該 Group 的資料做 Padding

0

Switch Merge EC Full Merge EC

HS adj FABBPL HS adj FAB BPL HS adj FAB BPL HS adj FABBPL HS adj FABBPL HS adj FAB BPL

29

後再寫到 NFTL 中;1.00 表示不做 Padding、0.00 表示 Always Padding。而 Block Erase 跟 Page Write 的值分別代表實驗所得到的 Block Erase Count 以及 Page Write Count。

Elapsed Time則是計算抺除及寫入動作所花的總時間,Elapsed Time 愈少表示寫入 效能愈好。

表 5:Information of HitStat with BAST

Fixed Padding Block Erase Page Write Elapsed Time(s) RLB ULB BW/NBlkPg 1.00 179756 15684893 12817.548 1.10 29.863% 0.24 0.50 168620 14741808 12046.376 1.06 23.500% 0.20 0.33 162769 14500509 11844.561 1.04 20.001% 0.17 0.25 157567 14414711 11768.119 1.03 17.633% 0.15 0.20 154201 14387487 11741.291 1.02 16.487% 0.14 0.16 150274 14342751 11699.612 1.02 15.834% 0.14 0.13 145671 14631209 11923.474 1.02 14.366% 0.13 0.11 144621 14801632 12058.237 1.02 13.529% 0.12 0.10 142821 14888096 12124.708 1.02 13.111% 0.12 0.09 141930 14939008 12164.101 1.02 12.912% 0.11 0.08 141027 14982949 12197.900 1.02 12.838% 0.11 0.07 138339 15089628 12279.211 1.02 12.710% 0.11 0.06 136441 15125308 12304.908 1.02 12.970% 0.12 0.05 134724 15188352 12352.768 1.02 13.554% 0.12 0.04 132458 15272566 12416.740 1.03 14.390% 0.13 0.03 129059 15609567 12681.242 1.05 18.861% 0.16 0.02 128616 15928989 12936.115 1.07 20.308% 0.18 0.01 130778 16590525 13468.587 1.10 22.835% 0.20 0.00 131960 16890880 13710.644 N/A N/A N/A dynamic by Model 147293 14340979 11693.723 1.02 16.190% 0.14

表 5 為在 BAST 上的實驗數據,其中 Fixed Padding 設定為 0.16 時可以得到最少 的 Elapsed Time,是實驗中找到的最佳 off-line 設定。而根據章節 3.5 中 Padding Model 的方程式(4),BAST 架構下需要統計 RLB、ULB的值來計算 BW,如表中各個實驗得到 的數據把 RLB、ULB代入方程式中,我們發現得到的 BW/NBlkPg值會動態收斂到 0.12~0.14的範圍,接近最佳的 off-line 設定 0.16。而造成些微的誤差原因可能為 Padding所造成的干擾,因為 Padding 過的資料引發 Switch Merge 可能會提早回收 Log Block,我們的統計方式已儘量減少這個干擾所造成的影響。表中最後一列的實 驗數據為根據 Padding Model 來動態調整 Padding 條件,我們的 Padding 初始設定 為 1.00,最後動態調整到 0.14,Elapsed Time 甚至比最佳的 off-line 設定還少。

分析 ULB在 Fixed Padding 設定接近 1.00 會變大,這是因為不論 victim Group 所 含的資料大小都會寫到 Log Block 中;而設定接近 0.01 時也會變大,主要是我們改 良過的統計方法把那些會引起 Switch Merge 並造成提早回收 Log Block 的 victim Group當作其資料是先寫到 Log Block 後再做 Full Merge 來計算,因為這種 case 比 例增加的原因所以拉高 ULB

30

表 6:Information of HitStat with FAST

Fixed Padding Block Erase Page Write Elapsed Time(s) RDB BW/NBlkPg

1.00 143623 18400029 14935.458 3.98 0.20

0.50 133771 17138992 13911.850 5.75 0.15 0.33 129124 16544157 13429.012 7.26 0.12 0.25 124708 15978999 12970.261 8.58 0.10 0.20 121906 15620255 12679.063 9.28 0.10 0.16 119258 15281375 12403.987 9.76 0.09 0.13 117099 15004969 12179.624 11.47 0.08 0.11 116638 14946016 12131.770 12.51 0.07 0.10 115636 14817696 12027.611 12.95 0.07 0.09 115125 14752384 11974.595 13.05 0.07 0.08 114744 14703525 11934.936 13.06 0.07 0.07 114603 14685532 11920.330 13.14 0.07 0.06 114444 14665148 11903.784 12.42 0.07 0.05 114887 14721920 11949.867 11.80 0.08 0.04 115676 14822902 12031.836 9.86 0.09 0.03 120380 15424991 12520.563 6.77 0.13

0.02 123787 15858717 12872.654 N/A N/A

0.01 129595 16590525 13466.813 N/A N/A

0.00 131960 16890880 13710.644 N/A N/A dynamic by Model 115027 14739805 11964.385 12.36 0.07

表 6 為在 FAST 上的實驗數據,off-line 找到的最佳 Fixed Padding 設定為 0.06。

根據章節 3.5 中 Padding Model 的方程式(5),FAST 架構下需要統計 RDB的值來計算 BW。表中算出的 BW/NBlkPg值會收斂到 0.07,非常接近最佳的 off-line 設定 0.06。表 中最後一列數據為根據 Padding Model 來動態調整 Padding 條件,Padding 初始設定 為 0.33,最後會動態調整到 0.07,效能接近最佳的 off-line 設定。

分析 RDB在 Fixed Padding 設定接近 1.00 時會變小,這是因為缺乏 Padding,許 多從 Buffer flush 屬於同一個 LBA 的大資料會寫進 Log Block 中,這些資料雖然會稀 釋使 RDB的值變小,但是造成要經常 Full Merge 來回收 Log Block,是 Elapsed Time 大量增加的原因;而設定接近 0.01 時也會變小,這是因為只有含小量資料的 victim Group會寫進 Log Block 中,所以寫到 Log Block 的資料量很少,使資料可以在 Log Block中待很久的時間,更有機會被後來的資料 invalidate,所以 RDB值降低。

31

圖 21:Padding settings - fixed Threshold and by Padding Model (a) on BAST, (b) on FAST

跟 X 軸的平行線代表根據 Padding Model 做 Padding 所得到的數據

圖 21 我們以二維圖的方式來呈現,X 軸為不同的 Padding 設定,Y 軸為 Elapsed Time愈低代表效能愈好。圖中可以看到 FAB 的最佳 Fixed Padding 設定跟不做 Padding相比兩者的效能差距非常有限,這是因為 FAB 大部份的 victim Group 所含 的資料量很少,參考圖 16(a)在 32MB Buffer 情況下大部份的 flush Group 只含 17 個 Page左右的資料量,所以即使使用 Padding Model,FAB 的整體效能也不會改善很 多。

而對 HitStat 以及 BPLRU 來說,使用 Padding 能夠讓效能改善的幅度較大,但 是過度的 Padding 設定反而會拖累效能,因為對含資料量小的 victim Group 做 Padding代表需要做大量額外的 Page 讀寫,這是造成圖中的 Padding 設定如果接近 0時 Elapsed Time 會迅速升高的原因,其中 FAB、BPLRU 由於這類 victim Group 比 例較多所以這種情況更明顯。因此如何達到最佳的 Padding 設定是一個重要的問 題,HitStat 使用 Padding Model 在 BAST(表 5)和 FAST(表 6)中都能夠動態的趨 近到最佳 Padding 設定,而在圖 21 可以看到 BPLRU 也可以使用 Padding Model 來 做 dynamic Padding,跟各種 Fixed Padding 設定所能達到的最低 Elapsed Time 幾乎 一致,表示 Padding Model 也適用於其它同樣以 Group 方式來管理的 Buffer 演算法。

因為 Padding Model 能夠在不同的 Buffer size 和 Log Block 數量環境下動態決定 Padding條件來達到最佳的效能,這也是在圖 19, 20 中大部份情況下,HitStat 能夠 得到最低的 Elapsed Time 而大幅勝出 FAB、BPLRU 的原因之一。

相關文件