當前位置:
首頁 > 最新 > NVMe SSD如何用之應用端緩存加速

NVMe SSD如何用之應用端緩存加速

在上一篇文章中介紹了快閃記憶體在以vSAN為代表的軟體定義存儲(SDS)中的兩種使用方式,即全閃和混閃兩種配置,全閃配置擁有更好的性能和更低的延遲,混閃在滿足所需性能的同時,擁有更好的成本。混閃方案需要軟體提供分層(Tier)或緩存(Cache)的功能,正在流行的SDS/HCI產品都會提供。那麼,出於各種原因而沒有部署這類產品的用戶該如何利用SSD來加速應用響應呢?本文將介紹iCAS軟體加速方案,以及企事錄實驗室利用iCAS在加速資料庫方面的測試分享。

iCAS,即Intel Cache Acceleration Software(英特爾緩存加速軟體),是Intel公司推出的一款輕量級緩存加速軟體,其安裝在應用伺服器之上,利用應用伺服器上的SSD,對本地存儲、外置SAN存儲或者直連JBOD等進行加速。可運行於Windows和Linux兩大類別的操作系統平台,在緩存加速方面支持包括Write-Through和Write-Back在內共4種模式。

在對這4種模式進行簡單介紹之前, 先給出名詞解釋:

Cache 設備——在這裡指相對性能更高、容量更小、價格更高的設備。

核心設備(core device)——在這裡指相對性能更低、容量更大、價格更低的設備——用於數據的持久化存儲。

Cache設備和核心設備是相對的概念。譬如,以SATA SSD為cache設備, 則機械硬碟可以是核心設備;如果NVMe SSD為cache設備, 則SATA SSD或者機械硬碟都可以是核心設備;如果以Optane SSD為cache 設備, 則NAND的NVMe SSD、SATA SSD、機械硬碟都可以是核心設備。

CAS軟體可以工作在如下模式:

Write-through模式。在該模式中,iCAS在往cache設備寫數據的同時也向core設備同步寫。該模式保障cache里的數據和core里的數據100%同步的,對讀密集型操作更有效。Core里的數據對共用的其他伺服器都有效。

Write-back模式。iCAS先往cache里寫數據。一旦寫入cache 成功, 便對應用返回確認寫成功。這個確認發生在數據被寫入core設備之前。 然後,周期性地,cache里的數據會在既定的機會裡寫入core設備。該模式對讀密集型操作和寫密集型操作都同時提升。

Write-around模式。只有當cache里已經有了數據塊(block),iCAS才會將數據同時寫入cache和core設備。和write-through類似,cache里的數據100%同步於core設備。然而, write-around進一步優化了cache, 避免「cache污染」。比如,應用要寫入的數據在後續確定不會被經常重讀,數據便不用寫入cache而是僅僅直接寫入core設備。這個模式對讀密集型操作更有效。

Pass-through模式。這個模式下,iCAS略過cache設備。當用戶在真正啟用緩存設備前,可以利用這個模式把所有準備被緩存的core device關聯起來。一旦這些core設備被關聯好以後, 用戶可以動態地切換到他們所要的cache模式。

Intel緩存加速軟體提供的兩種加速模式:Write-through和Write-back,均可對本地存儲、SAN存儲和直連存儲進行緩存加速

從上圖可以看出,iCAS對數據讀寫操作都有加速作用:讀緩存(Read Cache)和寫緩衝(Write Buffer)。顧名思義,Write-through和Write-back兩種模式的區別體現在寫入操作上,讀緩存方面工作原理沒有區別:在接收到應用的讀請求後,先在SSD緩存中查找,如果緩存命中,即讀取iCAS中的緩存數據;如果緩存未命中,則從後端讀取數據返回給應用,並將數據緩存到SSD中。

在寫緩衝中區別就體現出來了:如果使用Write-through模式,iCAS會將應用數據同時寫入到SSD緩存和後端數據存儲之後,再返回寫操作成功。這種模式實際並不能加速寫操作,因為其寫延遲取決於最慢的返回操作(即後端存儲);Write-back模式則能夠加速寫操作,如同前者一樣,數據會同時寫入到SSD緩存和HDD磁碟存儲中,但SSD緩存寫完即返回操作成功,磁碟存儲將在後台繼續寫入,直到完畢。

iCAS直接安裝在應用伺服器上,針對存儲卷(Volume)進行加速,所以可以在多種應用場景下使用,比如以資料庫為代表的塊存儲場景,文件存儲場景,以及虛擬化環境。iCAS在虛擬化場景下的使用方式跟物理機上的使用方式沒有不同,其並非安裝在Hypervisor層,而是應用虛擬機之上,所以能夠針對應用數據進行加速。

目前iCAS支持Windows平台和Linux平台,包括主流使用的Red Hat Enterprise Linux(RHEL)、CentOS、SUSE Linux Enterprise Server(SLES)以及Ubuntu Server等等,可以應用在絕大多數的企業環境之中。同時其安裝也很簡單,稍有Linux基礎的用戶通過一兩個命令行即可安裝使用。

企事錄實驗室驗證測試

在iCAS緩存加速軟體的驗證測試中,企事錄實驗室使用與之前評估Intel DC P4500/4600SSD的同台伺服器(型號為Intel R2208WFTZSX),配備雙路Xeon Gold 6146處理器和256GB內存。將原來的DC P4500/4600替換為希捷(Seagate)公司的Exos 7E8系列大容量硬碟驅動器(5400 RPM,4TB容量),並加裝SAS/SATA RAID卡將4片4TB磁碟組建RAID 5;分別保留一塊DC P4600和DC S4500作為iCAS緩存:

企事錄實驗室用於評估iCAS緩存加速性能的測試方案,分別使用Intel DC P4600和Intel DC S4500作為緩存,希捷磁碟作為數據實際存儲。在Oracle資料庫環境下,評估其在不同用戶數並發下的性能表現

在Oracle資料庫伺服器上安裝Intel iCAS軟體,將DC P4600和DC S4500分別划出300GB大小分區,用作緩存,啟用Write-Back模式,以加速寫性能。構建測試資料庫後寫入120GB數據,分別測試其在4、8、16、64等不同並發數下,Oracle資料庫的性能表現。

在開啟iCAS緩存加速測試功能之前,企事錄實驗室原本希望基於HDD存儲進行測試,將測試結果作為參照組,以與開啟iCAS緩存加速功能後的性能結果進行對比。但由於所採用的大容量磁碟存儲在隨機讀寫方面性能較弱,即使是4塊HDD(RAID 5)並發的情況下,仍不能為Orace資料庫提供滿足其所需的性能,導致測試無法正常進行。雖然經過多次調試,仍無法獲得結果,企事錄實驗室遂跳過這一階段。將DC P4600和DC S4500作為緩存,考量其在Oracle資料庫下的應用加速表現:

在DC P4600作為緩存的情況下,Oracle資料庫在64用戶數並發下獲得3.5萬TPS性能;而使用DC S4500作為緩存則獲得了2.8萬TPS性能。在4/8/16/64逐步增加用戶數的情況下,Oracle資料庫性能隨之增長,提升幅度可達20%

需要注意的是,這一測試方案經過優化,iCAS在Write-back下對所有的讀寫數據都有完全的加速作用,並且測試方案的構建基於中小型應用在數據量不大的情況下,熱點數據全部緩存SSD中,所以取得了最理想的加速效果。

同時,Oracle資料庫作為了一個完整應用,考量的是整個硬體平台/組件的綜合性能,不能也無法排除內存對於Oracle資料庫的加速影響。為了儘可能發揮Intel新一代硬體平台中六通道內存的性能,測試用資料庫SGA人為設置為64GB大小,其對資料庫性能有著不小的性能增益。

並且,結合企事錄實驗室以往的測試結果發現,高主頻的Xeon Gold 6146處理器(3.2GHz,可睿頻到4.2GHz)在高性能的NVMe SSD環境下,其對資料庫等強計算性能應用利好

企事錄實驗室建議

在實驗室條件下驗證了Intel公司的iCAS緩存加速軟體確實能夠大幅提升應用伺服器的性能,能夠接近或者達到全快閃記憶體的性能,但這都是嚴格控制實驗條件的情況下獲得的。如果要將iCAS緩存加速軟體用於實際應用環境,並獲得較好的加速效果,那麼用戶需要注意:

首先,用於iCAS的SSD應該是耐寫型的,即寫入性能較高、寫入壽命較長。因為作為讀緩存和寫緩衝的設備,不僅要承受所有的寫入數據量,緩存的熱點數據(加速讀取)也要根據時間的推移更新——這也意味著數據的寫入。如果寫入性能較差,則寫緩衝對寫入操作的加速不明顯;如果寫入壽命不夠,則可能會提前耗盡(損壞)。好在,寫入性能好的SSD,寫入壽命通常也會比較長。

在我們測試所用的SSD中,P4600是所在系列中相對耐寫型的(與P4500相比)——論寫入還比不了天賦異稟的P4800X,但勝在容量大、價格有優勢。S4500不以寫入見長,但限於條件我們手裡沒有寫入特性更好的S4600。如果用戶需要iCAS搭配SATA SSD使用,建議選擇DC S4600。

其次,計算不能成為瓶頸。較高性能的CPU,並配備適量的內存容量。企事錄實驗室認為,較高的計算性能是iCAS緩存加速軟體發揮作用的前提條件,較多的內核(例如12核及以上)或更高主頻的CPU都對資料庫性能利好,相較而言,更高主頻的CPU在資料庫性能提升方面更為直接簡單。同時,更大內存容量能夠給資料庫提供更多高速緩存,能夠大幅提升性能。

再者,應當注意SSD(緩存)和HDD(數據實際存儲)的容量比例,更大容量的SSD緩存能夠明顯提升緩存命中率,儘可能減少對磁碟的讀寫操作,或者儘可能讓磁碟處於順序讀寫狀態,都對性能利好。一般而言,SSD緩存與HDD實際存儲的容量比例保持在1:10是一個較好的狀態,如果SSD緩存的比例更高,則顯著提升iCAS的性能表現。

最後,SSD緩存的容量配比要結合應用實際,即分析應用產生的數據增長情況,與熱點數據的生命周期。應用數據的增長情況將會直接影響寫加速(Write Buffer)的效率,Write Buffer能夠完全容納增長的數據容量,將具有最佳的加速效果。同時,還要與熱點數據的生命周期相結合,及頻繁訪問數據的時間範圍,比如應用數據在一個月內有較高的訪問頻率,超過這個時間範圍,其訪問頻率迅速下降,甚至不再訪問,那麼讀緩存的容量至少要能完全容量一個月以上的數據存儲空間需求。

如果熱點數據的生命周期為一個月的話,那麼SSD緩存的容量應該為一個月的熱點數據容量(Read Cache),還要給每天應用所產生的新數據留出足夠的寫入空間(Write Buffer)。考慮到預估與實際情況會存在一定的偏差,SSD緩存在滿足上述條件的同時,再留有一定的剩餘容量,在實際應用中將更有成效。

關於Intel SSD和iCAS緩存加速軟體的評估就到此結束了,如果你有SSD或者緩存加速方面的經驗或問題,請與企事錄實驗室聯繫,我們期待你的分享與建議。


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

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


請您繼續閱讀更多來自 企事錄 的精彩文章:

NVMe SSD可以有多快?實測性能全分析

TAG:企事錄 |