數據庫為什么需要閃存卡?

發布時間:2016-05-31

2008年的時候,一套數據庫可能還不到200GB,覺得已經是一個非常大的容量,因為當時Oracle的安裝文件才1GB多。2015年,Oracle12c的安裝文件全部加起來,已經快10G。當然,數據庫容量也是翻了很多倍,很多核心的系統,數據庫容量都在3TB-5TB 之間。
Oracle 軟件功能的不斷增加,數據庫的大小也在不斷增加,業務對數據庫的要求也越來越高。第一要保證系統的高可用,第二還要保證系統的高性能。高可用我們可以通過Oracle Data Guard,RAC 的架構來實現。但是高性能,就是一個非常頭痛的問題。
在日常的運維過程中,經?;岢魷忠滴襝低懲蝗豢ㄗ?,或者系統響應時間變慢的問題。做為一名運維DBA需要花很多時間來解決這些故障,所以DBA的另外一個稱呼,叫救火隊員。
從Oracle 數據庫的角度考慮,Oracle 提供了很多方法,讓DBA 來分析問題,比如AWR 報告,收集統計信息,分析執行計劃,收集對象的碎片,在服務器資源夠用的情況下,還可以使用并行,亦或者在內存資源足夠的情況,可以把一些經常訪問的對象keep到buffer cache中。這些方法現在已經成為DBA的幾把斧頭,在數據庫出現性能問題的時候,一般都是先用這幾把斧頭,但隨著數據量的成倍增長,這種方法效果越來越不明顯。
這是2010年某系統的AWR 報告截圖:

這是2015年某系統AWR報告的截圖:

因為是不同的系統,不能直接進行對比,但有些指標還是可以做參考。 2010年的系統,是3個小時的快照分析。2015年的是半個小時的快照分析。
這里對比2個參數:
每秒生成的Redo大?。?015年是9M,2010年是134K。
每秒執行事務數量:2015年是5156次,2010年是345次。
這個就是一個側面的對比。說明隨著近幾年信息化的快速發展,業務系統對數據庫的處理數據量、并發請求、吞吐量要求越來越高。
現在回到我們之前說的問題,在數據量越來越大的情況下,傳統存儲的機械磁盤尋道,已經成為一個非常明顯的瓶頸,IOPS低,延時高,不能滿足數據庫高性能要求。
而閃存卡,正好可以彌補這個短板。我們看一組性能數據。

利用閃存卡,解決了存儲IO對數據庫高性能的影響,在結合高性能CPU,和大內存,可以在X86的架構下,讓數據庫提供更高的性能。

我們繼續看一組X86 架構下基于閃存卡的Oracle數據庫性能數據:

這個測試使用使用的是X86的八路服務器,CPUIntel E7-8870v2 * 8, 內存 1T。測試出來的效果非常明顯。
1.TPM:4044739(400w)
2.NOPM:1344006(134w)
3.Redo size:340M/s
4.執行SQL: 139w/s
5.事務:6.7w/s


這組性能數據,可以說明,這種架構完全可以支撐現在的所有業務,相對與傳統的IBM小機和 EMC存儲來說,這種架構是較優的替代方案,也是未來的發展方向。而其中的短板,也被PCIe 閃存卡解決,所以數據庫依靠閃存卡,才能發揮出更好的性能。