智能SmartCache實(shí)現(xiàn)原理
——按照塊的方式對(duì)SSD硬盤進(jìn)行劃分,為每一個(gè)塊進(jìn)行編號(hào),塊的大小默認(rèn)為1MB。
——主機(jī)從機(jī)械硬盤中讀取數(shù)據(jù)時(shí),系統(tǒng)會(huì)實(shí)時(shí)對(duì)開啟SmartCache功能LUN中的數(shù)據(jù)塊訪問頻率進(jìn)行統(tǒng)計(jì)。
——每隔半小時(shí)系統(tǒng)會(huì)對(duì)開啟SmartCache功能的LUN中的數(shù)據(jù)塊按照訪問頻率進(jìn)行排序。
——系統(tǒng)根據(jù)該排序結(jié)果將訪問頻率最高的數(shù)據(jù)拷貝至SmartCache池中,若SmartCache池中沒有空閑緩存塊,則將SmartCache池中變冷的數(shù)據(jù)塊淘汰以獲取緩存塊資源。
——主機(jī)讀IO時(shí),若全命中SmartCache池中的緩存塊,則從SmartCache池中讀取。
——讀IO沒有全命中SmartCache中的緩存塊時(shí),則從機(jī)械硬盤中讀取。
——機(jī)械硬盤中的數(shù)據(jù)更新時(shí),SmartCache池中對(duì)緩存塊同步進(jìn)行更新。
SmartCache五大技術(shù)優(yōu)勢(shì)
——高性能:針對(duì)Web Server應(yīng)用隨機(jī)讀性能提升接近5倍,針對(duì)File Server應(yīng)用隨機(jī)讀性能提升接近2倍。
——高可靠性:所有數(shù)據(jù)都保存在傳統(tǒng)磁盤中,由RAID保證數(shù)據(jù)的安全可靠,SSD中的數(shù)據(jù)僅僅是一個(gè)副本。
——高可用性:多盤組成SmartCache池時(shí),除非所有成員盤全部失效,否則不影響功能的實(shí)現(xiàn)。
——高可擴(kuò)展性:支持SSD盤片在線添加。
——低功耗:SmartCache池利用SSD和傳統(tǒng)磁盤組成混合陣列降低系統(tǒng)整體功耗。
數(shù)據(jù)庫IO特性
根據(jù)SSD本身的性能特性,SmartCache適用于讀多寫少有熱點(diǎn)的隨機(jī)小IO場(chǎng)景。因此,在使用SmartCache之前,了解IO特性和負(fù)載情況非常重要。對(duì)關(guān)系數(shù)據(jù)庫而言,索引數(shù)據(jù)是訪問最為頻繁的,因此當(dāng)數(shù)據(jù)庫很大時(shí),索引速度的快慢決定了訪問數(shù)據(jù)庫的延遲。
為了更直觀的體現(xiàn)數(shù)據(jù)庫IO特性,在實(shí)驗(yàn)環(huán)境中,將數(shù)據(jù)庫關(guān)系表存放在400G的LUN中,使用測(cè)試工具模擬數(shù)據(jù)庫應(yīng)用,以每G為單位統(tǒng)計(jì)主機(jī)訪問數(shù)據(jù)庫時(shí)的訪問數(shù)據(jù)。如下圖所示,經(jīng)常訪問的數(shù)據(jù)量只占到整個(gè)數(shù)據(jù)庫空間的一小部分,大部分?jǐn)?shù)據(jù)庫空間的訪問量很小或者幾乎沒有訪問。在客戶真實(shí)環(huán)境中,數(shù)據(jù)庫中只有10%的數(shù)據(jù)被經(jīng)常訪問。相比在實(shí)驗(yàn)室模擬的數(shù)據(jù)庫IO特性,客戶真實(shí)環(huán)境中的數(shù)據(jù)具備更加明顯的熱點(diǎn)。
圖2 Oracle訪問400G LUN的IO分布
1SmartCache技術(shù)提升數(shù)據(jù)庫應(yīng)用性能
下面以具有OLTP特性的數(shù)據(jù)庫為例進(jìn)行測(cè)試,說明數(shù)據(jù)庫應(yīng)用SmartCache后獲得了明顯的性能提升。OLTP(On-Line Transaction Processing)聯(lián)機(jī)事務(wù)處理系統(tǒng),也稱為面向交易的處理系統(tǒng),其基本特征是顧客的原始數(shù)據(jù)可以立即傳送到計(jì)算機(jī)中心進(jìn)行處理,并在很短的時(shí)間內(nèi)給出處理結(jié)果。這樣做的最大優(yōu)點(diǎn)是可以及時(shí)的處理輸入的數(shù)據(jù),及時(shí)地回答。也稱為實(shí)時(shí)系統(tǒng)(Real time System)。典型的OLTP系統(tǒng)應(yīng)用有電子商務(wù)系統(tǒng),銀行,證券等,如ebay的業(yè)務(wù)數(shù)據(jù)庫。OLTP以小的事務(wù)及小的查詢?yōu)橹鳎u(píng)估其系統(tǒng)性能時(shí)的幾個(gè)重要性能指標(biāo)是實(shí)時(shí)響應(yīng)時(shí)間(Response Time)、每分鐘事物處理數(shù)(TPM,Transaction Per Minute)和每秒IO數(shù)(IOPS,I/O Per Second)。
Swingbench是Oracle UK Database Solutions group開發(fā)的一款免費(fèi)的性能測(cè)試工具。Swingbench基于TPC-C標(biāo)準(zhǔn)對(duì)OTLP業(yè)務(wù)場(chǎng)景模式進(jìn)行性能測(cè)試,能夠方便的調(diào)整Swingbench配置文件中OLTP各項(xiàng)業(yè)務(wù)所在比例,使得模擬的業(yè)務(wù)場(chǎng)景中讀寫IO比例大概維持在所需要的比例8:2。
測(cè)試組網(wǎng)
測(cè)試組網(wǎng)如圖3所示:
圖3 測(cè)試組網(wǎng)圖
本文中所使用的環(huán)境配置如下表:
表1 SmartCache對(duì)數(shù)據(jù)庫性能提升實(shí)驗(yàn)環(huán)境配置
測(cè)試結(jié)果
在打開SmartCache功能穩(wěn)定運(yùn)行14小時(shí)后,測(cè)試結(jié)果如圖4、圖5、圖6所示:以圖4的IOPS測(cè)試結(jié)果為例:圖中的虛線為SmartCache功能關(guān)閉與開啟的分界線。在SmartCache功能未開啟時(shí),IOPS值穩(wěn)定在2000左右;在測(cè)試時(shí)間的第三個(gè)小時(shí)開啟SmartCache功能,系統(tǒng)經(jīng)過一段時(shí)間的熱點(diǎn)統(tǒng)計(jì)后,開始逐步將熱點(diǎn)數(shù)據(jù)拷貝至SmartCache池中,此時(shí)IOPS值呈上升狀態(tài);當(dāng)全部熱點(diǎn)數(shù)據(jù)均緩存至SmartCache池后,上層應(yīng)用下發(fā)的IO大部分命中SmartCache池中,此時(shí)IOPS穩(wěn)定在8000以上。在開啟SmartCache功能后數(shù)據(jù)庫系統(tǒng)性能較原系統(tǒng)有了較明顯的提升,IOPS為原系統(tǒng)的5.64倍,TPM為原系統(tǒng)的6.43倍,RT下降為原系統(tǒng)的27%。
圖4測(cè)試結(jié)果–IOPS
圖5 測(cè)試結(jié)果–TPM
圖6 測(cè)試結(jié)果–Response Time
SmartCache技術(shù),有效解決性能問題
華賽SmartCache技術(shù)利用系統(tǒng)中的高性能SSD,緩存應(yīng)用中的熱點(diǎn)數(shù)據(jù),從而對(duì)熱點(diǎn)數(shù)據(jù)的訪問進(jìn)行加速,特別是對(duì)于那些隨機(jī)小IO業(yè)務(wù),加速效果明顯。通過對(duì)具有OLTP特性的數(shù)據(jù)庫應(yīng)用場(chǎng)景進(jìn)行測(cè)試發(fā)現(xiàn), SmartCache能很好的解決大型數(shù)據(jù)庫目前碰到的性能問題。
u通過把熱點(diǎn)數(shù)據(jù)緩存到SmartCache池中,大大提升了系統(tǒng)的整體讀性能。數(shù)據(jù)庫索引數(shù)據(jù)的訪問頻率高于普通數(shù)據(jù),通過SmartCache的熱點(diǎn)識(shí)別和熱點(diǎn)拷貝,索引數(shù)據(jù)會(huì)逐步緩存到SSD中,后續(xù)用戶對(duì)于索引數(shù)據(jù)的訪問將直接從高性能的SSD中獲取,降低了訪問索引數(shù)據(jù)的時(shí)間,從而更好的符合了用戶的感受。
u所有數(shù)據(jù)都保存在使用了冗余技術(shù)的傳統(tǒng)磁盤中,SmartCache池的SSD中保存的僅僅是熱點(diǎn)數(shù)據(jù)的副本,很好的保證了數(shù)據(jù)庫中數(shù)據(jù)的安全性,同時(shí)由于數(shù)據(jù)庫應(yīng)用的大量隨機(jī)小IO訪問都在SmartCache池中命中,減少了傳統(tǒng)磁盤磁頭頻繁擺動(dòng)的次數(shù),增長(zhǎng)傳統(tǒng)磁盤的壽命。
u通過利用少數(shù)的幾塊SSD就可以達(dá)到需要部署大規(guī)模傳統(tǒng)磁盤陣列才能達(dá)到的性能,降低了系統(tǒng)整體的TCO,同時(shí)也降低了功耗,與當(dāng)前業(yè)界倡導(dǎo)的綠色存儲(chǔ)相符合。