當前位置:
首頁 > 新聞 > 哈爾濱中軟分享:快閃記憶體存儲特性以及資料庫相關優化思路

哈爾濱中軟分享:快閃記憶體存儲特性以及資料庫相關優化思路

快閃記憶體存儲當前越來越多的應用於企業級環境,特別是提升資料庫性能方面。本次分享主要介紹快閃記憶體的特性,快閃記憶體的劣勢及其解決機制,以及採用快閃記憶體存儲時資料庫的一些優化思路。

一.快閃記憶體的特性

凡是採用Flash Memory的存儲設備,可以統稱為快閃記憶體存儲。我們經常談的固態硬碟(SSD),可以由volatile/non-volatile memory構成,其實固態硬碟的範疇是大於快閃記憶體的,只是當前的固態硬碟大多數採用快閃記憶體介質,所以很多時候我們默認固態硬碟就是快閃記憶體盤。

除了快閃記憶體以外,還有其它多種快速存儲技術,如DRAM ,NVRAM, MRAM and Spin-Torque(自旋力矩磁阻式隨機存取內存), Carbon Nanotube( 碳納米管 ), Phase Change Memory(相變內存),Memristor ( 憶阻器 )等等。

未來存儲設備的創新其實就是存儲材料的創新,這也是國外很多初創的半導體公司一個研發的方向。

從半導體的角度來看,快閃記憶體屬於非易失性存儲,但是屬於不可靠介質。因為快閃記憶體是採用電子驅動,因此具有電子元器件所固有的缺陷,電子泄露,衰減等等。

決定快閃記憶體存儲大規模應用的主要因素是量產規模、穩定性以及經濟性。

快閃記憶體設備隨著使用時間和數據量的增長,壞塊會逐漸增加,會產生大量的ECC Error,這時設備性能和可靠性會大幅度下降,對應用性能和數據安全帶來影響。快閃記憶體產品在使用過程中往往會存在性能衰減和可靠性下降的問題。這裡提醒一下,如果我們使用快閃記憶體產品,一定要使用工具監控快閃記憶體產品的健康狀態,防止老化,數據丟失。

通過對快閃記憶體產品的良好設計和質量控制,也可以避免性能衰減和可靠性下降的問題,但是往往會帶來成本的增加和性能的下降(相比於直寫快閃記憶體)。

對於企業級應用而言,穩定是第一位,其次是易用性,第三才是性能。快閃記憶體設備的性能相比於應用的需要是足夠的。

快閃記憶體在企業級以及數據中心的應用,實際上也是依賴於互聯網以及大數據的興起。

互聯網的分散式架構以及多副本保護機制,消除了集中式存儲的瓶頸,滿足了海量用戶以及應用的請求,帶來了更高的性能需求。同時多副本的保護機制,又解決了快閃記憶體作為不可靠介質可能帶來的數據存儲安全的問題。

但是由於快閃記憶體的可靠性問題,其實互聯網客戶也是有選擇地在特定業務上使用快閃記憶體,並不是在所有業務上都使用快閃記憶體設備。

有的時候我們還會發現意外斷電後,快閃記憶體設備故障,這往往是由於電路保護機制不完善或固件bug造成的。

二. 快閃記憶體的劣勢及其解決機制

在使用快閃記憶體設備的時候,我們需要考慮的問題要比使用磁碟多。

當前我們碰到的很多問題是,相比於IOPS,快閃記憶體比磁碟性能高上幾十甚至上百倍,但是我們將數據放置到快閃記憶體上,性能提升並沒有這麼高,甚至沒有提高。

原因是快閃記憶體主要解決的是IO性能問題,並且主要隨機寫的性能,而順序讀寫性能並不如多塊磁碟匯聚之後的性能。

Linux文件系統

以Linux為例,Linux ext4屬於日誌型文件系統,為了保護數據安全,通過Journal機制提供一致性保護。那麼我們在部署過程中可以將Journal日誌放置到快閃記憶體上,可以提升IO性能。因為應用的IO操作還是通過OS層面完成的,因此OS層面的IO性能提升也可以帶來應用性能提升。

另外,操作系統以及應用的IO層往往是針對磁碟的特性進行了優化,這些優化往往不適用於快閃記憶體設備,甚至還有副作用。例如OS層面IO scheduler有三種模式,CFQ、Deadline和noop,其中前兩種模式是針對磁碟低IO特性和物理尋道機制進行優化的,例如做IO合併、尋道演算法等等,會有默認的等待嚴實以等到更多的IO block進行合併和處理。對於快閃記憶體而言,是不存在尋道處理的,因此前兩種處理機制反而會造成延時增加。如果我們在系統中使用了SSD,需要將IO scheduler調整為noop模式。

三. 資料庫場景測試

剛才談到為了保證數據安全,我們需要在Linux採用Journal模式,但是MySQL也有double write的機制,我們需要怎麼既保證數據安全,又不會增加過多的機製造成性能下降。我們在我們的快閃記憶體產品上做了這方面的測試。

上面是mySQL的寫入機制。當系統意外斷電時,資料庫16K的頁面可能沒有完成,就會出現partial write,而partial write會造成資料庫損壞。

MySQL 的Double write就是為了解決partial write造成的問題,但是DW也會帶來兩個問題,性能懲罰和對SSD的磨損增加。

我們按照上面的場景在我們的快閃記憶體卡上進行了測試。

在安全性層面,只要Metadata Journal+DW或Metadata Journal+Data Journal,都可以保護資料庫數據的安全,也就是意外掉電數據不會損壞,資料庫可以正常啟動,數據不丟失。

但是在CPU bound的情況下,前個組合的性能衰減(8%)要小於後面的保護組合(10%)。如果是在IO bound的情況下,前個組合的性能衰減(10%)要小於後面的保護組合(34%)。但是DW下的數據寫入量會比後者增加23%,也就是會增加SSD的磨損。這個是我們在應用時需要注意的。

另外,我們在做DB2的測試時也發現幾個問題:

快閃記憶體存儲在非分區表的簡單的查詢統計條件的查詢方面具有明顯的優勢和性能提升,性能提升3到4倍,但是在分區表的統計和加限制條件的查詢方面的性能提升並不明顯。而且對相應的複雜的存儲過程的統計計算未能體現出優勢。這可能是由於分區表設計機制主要是面向磁碟性能優化,在快閃記憶體上反而有負面影響。

另外我們在Oracle資料庫上應用快閃記憶體測試時發現,帶子查詢的多表關聯查詢語句的存儲過程的調用性能表現很差,查看AWR發現大量的cache latch,出現長時間等待, 而在磁碟存儲上沒有這種情況。我們分析是由於快閃記憶體的性能比磁碟高很多,造成cursor數據量大,緩存內的latch衝突增加。通過增大share pool和將複雜查詢處理簡化為多個小查詢處理可以解決這個問題,性能也得到明顯提升。

Q & A

Q1 : 請問快閃記憶體和磁碟的比較中MTBF是什麼意思?

A1:MTBF(Mean Time Before Failure),失敗前平均工作時間。快閃記憶體其實是沒有MTBF的概念的,因為快閃記憶體有擦寫次數的限制,數據擦寫到一定數量後,快閃記憶體介質就會物理性地損壞,快閃記憶體的壽命是可以通過監控使用狀況推算出來的。而磁碟的損壞其實是概率,會有MTBF指標。

哈爾濱中軟卓越具有完善的IT職業教育體系,提供基於崗位的項目實戰訓練,投重金研發了專門針對大學生的准員工。「5R(5Real)」實訓課程體系,5R即:真實的工作環境、真實的項目經理、真實的項目案例、真實的工作壓力、真實的工作機會。課程設計主要培養學員的動手操作能力,通過實際項目讓學生熟知軟體開發的流程,每年有無數學子從哈爾濱中軟卓越走向IT行業,選擇通過正規培訓的職業教育進入IT行業。哈爾濱中軟卓越助您走近夢想,走進輝煌人生。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 中軟卓越哈爾濱 的精彩文章:

哈爾濱中軟分享:2018物聯網起飛的十大技術
哈爾濱中軟分享:暗物質已被發現

TAG:中軟卓越哈爾濱 |