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