文章来源:由「百度新聞」平台非商業用途取用"http://tech.hexun.com/2015-05-27/176224391.html"
在數據爆炸的時代,給眾多IT從業人員帶來了相當大的困擾—伴隨著大數據分析,商業智能的發展,數據量呈現指數增長,傳統數據處理系統已不堪重負。在這樣的背景下,“數據庫平臺的構建”逐漸成為一個備受關注的話題。 影響數據庫性能的三要素 對于數據庫系統而言,絕大多數情況下影響數據庫性能的三個要素是:數據運算能力、數據讀寫時延和數據吞吐帶寬,簡稱計算、時延、吞吐。計算指的是CPU的運算能力,時延是數據從存儲介質跑到CPU所需的時間長短,吞吐則是數據從存儲介質到CPU的道路寬度。一般情況下,關注計算和時延是比較多的,但是在數據量越來越多的情況下,吞吐也成為影響數據庫性能的重要因素。如果吞吐帶寬不夠,會造成計算等待隊列的增加,CPU占用率虛高不下。這種情況下,即使增加再多的計算資源也于事無補,相當于千軍萬馬擠獨木橋,馬再好也是枉然。一個高性能的數據庫平臺,一定是計算、時延、吞吐三方面的能力齊頭并進,相互匹配。 計算能力由CPU主頻和核數決定,實踐中看CPU占用率就能夠大致確定CPU配置是否合適。時延的指標很簡單,時間是衡量時延的唯一指標。吞吐量則是通過每秒在IO流中傳輸的數據總量來衡量的。 從三要素到三方法 明確了影響性能的要素后,就可以著手改變各要素來提升數據庫平臺的性能。 1.計算能力:x86化的今天,提升計算能力就是:增加CPU內核數量或升級CPU主頻。 2.時延能力:加快數據從存儲介質到CPU的速度,即提升數據讀寫時延,從以下三方面努力: a)降低存儲介質的讀寫時延:使用電子尋址的Flash顆粒來替換旋轉的機械磁頭,是降低存儲介質讀寫時延最有效的方法。實踐中可結合數據吞吐量來確定是選擇SAS總線上的SSD盤還是選擇PCIE總線上的Flash卡。 b)降低網絡的傳送時延:網絡時延則可以通過InfiniBand網絡來解決,注意不要選擇IPoIB,而是要使用RDS,相比傳統UDP協議,網絡延遲至少減一半。通過SRP協議,利用RDMA技術在網絡層面傳送SCSI指令和數據,使得數據庫節點能夠像操作本地SCSI設備一樣讀寫遠程的數據,對于時延的降低,不是FC網絡能夠企及的。 c)擴大存儲層的數據緩存大小:存儲層的數據緩存大小對時延也至關重要,如果有盡可能多的數據讀寫在緩存中進行,就避免了數據下盤。緩存的大小以及緩存算法都對緩存命中率有直接的影響,這一點往往被忽略。除了單點緩存之外,分布式緩存技術也是非常重要的,通過分布式緩存技術,可以避免單點緩存的局限性,擴大緩存的全局能力,增加緩存規模,提高緩存命中率。 3.吞吐能力:拓寬數據通路的方法有兩種:使用高速InfiniBand網絡、使用分布式存儲。前者比較容易想到,實施也簡單,基于FDR的56GbsInfiniBand解決方案可實現每秒1.37億條消息的信息通信速率,在16個計算節點上,性能表現比QDR40GbsInfiniBand高出20%-30%,而與FC、萬兆和4萬兆以太網相比,性能更是領先了100%到300%,是最高效的計算和存儲互聯方案。對于后者,分布式存儲,其好處在于不將數據集中存放在某幾塊存儲介質上,而是將數據全部打散存放在多個存儲節點的許多個介質上,這樣避免在大規模數據并發讀寫訪問時,存儲介質的單點能力成為數據讀寫的瓶頸,通過分布式的并發能力來提升數據讀寫吞吐能力。注意的是,一定要使用高性能低時延的分布式塊存儲,分布式文件存儲是無法滿足性能要求的。 通過計算、時延、吞吐的三管齊下,通過使用SSD存儲介質、InfiniBand網絡交換以及分布式存儲,數據庫平臺的性能將得到極大提升。 未來為是何種模樣 高性能數據庫系統未來向著內存化、云化的方向在不斷發展。SAP的HANA內存數據庫,Oracle12c的內存特性,GemFire的分布式內存數據緩存,以及Spark的內存并行計算,都在昭示著內存化的未來方向,其本質還是通過內存的高速讀寫與高速總線來解決時延和吞吐問題。 數據庫的云化,即DBaaS(數據庫即服務),其核心就是整合IT基礎設施中的硬軟件,實現簡單化、標準化和靈活性,提升可用性以及安全保障,同時降低成本。當然,云化在性能和QoS方面也對IT基礎設施提出了更多增強性的挑戰。(責任編輯:HN666)
關鍵字標籤:SAS Connector
|