小机、数据库、存储选型应该注意的几个事项(摘自ORACLE高可用环境-陈吉平)
存儲:
存儲的幾個主要指標是IOPS、帶寬與響應時間。
IOPS:
指的是系統(tǒng)在單位時間內能處理的最大IO頻度,一般是指單位時間內能完成的隨機小IO個數。
帶寬(throuput):
有的時候也較吞吐量,指的是單位時間按內最大的IO流量。往往是采用大的IO塊、大的帶寬獲得的最大流量。
這幾個指標即相互獨立有相互關聯。一般來說,當涉及更多的頻繁讀寫時(OLTP),更多的考慮IOPS與響應時間;
而一些大量的順序文件訪問,例如數據倉庫應用(OLAP),流媒體,更多的考慮帶寬指標。
響應時間:
單IO的響應時間指的是一個IO請求從開始到結束的時間,它往往與cache大小以及命中率有很大關系。
?
?
決定IOPS的因素有如下幾個:
磁盤個數:
首先看磁盤個數,這個是決定存儲IOPS的最關鍵因素,因為每個磁盤的最大IOPS個數是有限制的。
目前的情況是:
FC硬盤(光通道硬盤)速率>SATA硬盤速率
15K轉速FC硬盤>10K轉速硬盤
?舉個例子:
如果一個磁盤陣列有120塊 15K rpm的光纖硬盤,他能支撐的磁盤IOPS為 120×150=18000,基本達到硬件限制的理論值。
?
cache命中率:
cache 如果命中,一個查詢可能只需要 1-2ms就可以返回,而磁盤讀取,就可能需要
5-10ms;如果讀操作特別多,可能需要更高。cache讀操作速度是磁盤讀操作速度的5倍以上。
?一般情況下,cache越大,命中率也越高,當然命中率也和應用,數據庫設計也有關。
好的應用設計可以大大的提高cache命中率。
因為讀 cache? 采用類似 LRU的算法設計,對于比較典型的OLTP環(huán)境是比較合適的,而在數據倉庫應用(OLAP)
或者類似文件流的系統(tǒng)中,因為讀cache很不容易命中,所以作用不是很大。
?
?
陣列的算法:
陣列算法有 cache算法、尋道算法、預讀算法等,它們對IOPS與cache命中率也有直接間接的影響,
陣列不一樣,算法也不一樣。
cache命中:
如果數據在內存中(磁盤陣列的內存),則可以直接從內存中獲得,這個稱為cache命中。
?
?關于cache,有幾個要注意的地方:
一般在生產系統(tǒng)中都要打開cache mirror這個功能,如果一個節(jié)點失敗,另一個節(jié)點的 cache mirror鏡像的存在能保證不丟失數據,
把cache 數據寫回磁盤。
cache讀和cache 寫:
對于raid 5 格式的磁盤陣列來說, cache尤其重要,數據可以先寫到cache中,再由磁盤陣列寫回到硬盤上去。
否則,直接寫到磁盤陣列的硬盤上,由于raid 5還要讀寫額外的校驗信息,比 raid 10 需要更多的io。
?
關于RAID:
建議對OLTP數據庫,采用RAID 10而不是 RAID5.
原因前面也說了,因為一個讀寫,同樣的情況下,RAID5 需要的 io比 RAID10 更多.
?
?
?存儲的第二個重要指標 帶寬
?吞吐量主要取決于硬盤的個數、光纖通道的數量和帶寬、陣列的構架。
與IOPS一樣,每個硬盤也有自己最大能支持的流量大小,硬盤類型與最大流量的關系是
15kRPM光纖硬盤>10KRPM光纖硬盤>SATA光纖硬盤
比如說,假設一個陣列有120塊,15K rpm 的光纖硬盤,那么硬盤上最大可以支撐的流量是
120*13=1650MB/s
?
除了硬盤,就要考慮光纖通道了,
如數據倉庫環(huán)境(OLAP)中,如果1塊2Gb的光纖卡,所能支持的最大流量是 2Gb/8=250MB/s的實際流量。
需要4塊才能達到 1GB/s的實際流量,所以數據倉庫可以考慮用 4Gb的光纖卡。
最后,陣列的構架因每個陣列的不同而不同,它們也都存在內部帶寬,(類似PC的總線),不過一般情況下,
內部帶寬都設計的很充足,不是瓶頸所在。
?
?
?存儲的第三個重要指標 響應時間
?除了IOPS與吞吐量,另一個重要指標就是 單IO的響應時間,單IO的響應時間與IOPS的當前值、吞吐量大小以及
cache 命中率都有很大的關系。
經驗值表示,一個IO的響應時間在20ms以內,應用基本可以正常工作,作為一個核心的高可用OLTP環(huán)境,
最佳的單IO響應時間建議在10ms以內。
?
?
總結存儲的選型:
如果應用是一個大型的交易系統(tǒng),也就是典型的OLTP環(huán)境,其中以事務與小的查詢語句多,基本是離散讀與
離散寫,首先考慮IOPS因素,并配置合適的硬盤個數和Cache 大小。
?
如果應用數數據倉庫環(huán)境,或者是典型的OLAP環(huán)境,其中主要運行大型的SQL語句,需要大吞吐量,讀寫規(guī)則
基本上是連續(xù)讀和連續(xù)寫,則需要考慮存儲系統(tǒng)帶寬與 存儲大的光纖通道帶寬之和,并配置適當的硬盤個數,
這與CACHE大小關系不大。
?
?
?存儲的測試方法與測試軟件
LOAD RUNNER:
ORION:
推薦使用ORION,可以用它來模擬ORACLE的運行,并獲得極限壓力情況下的壓力數據,包括IOPS,帶寬與IO響應時間。
?
?
?
?
?
個人對目前存儲主流的選型考慮:
1.成本預算問題。一般來說,級別越高,成本也越高,處于成本的考慮,采用中低端存儲成為大多數用戶的選擇。
2.響應速度與可靠性的問題,中端存儲就可能提供高速的響應速度,在相同的磁盤數量的情況下不會和高端
存儲相差多遠(高端存儲擴展能力更強),但是可靠性方面確要差很多,所以,如果可靠性要求非常高的系統(tǒng),
可以考慮用高端存儲。
3.存儲的評估指標。存儲的主要測評指標是IOPS、帶寬、與響應時間。然后,需要根據自己的業(yè)務類型,是偏重于
IOPS的OLTP環(huán)境,還是偏重于帶寬的OLAP系統(tǒng)。如果有了這些信息,就可以根據自己的需求,多選擇幾個合適
于自己的存儲產品,分別去做測試。
?
?
?測試是非常重要的,存儲廠商一般都會配合完成這些測試,而且測試的時候,最好不要依靠存儲廠商的測試軟件,
要模擬自己的真正應用,做最真實的模擬測試。另外,不同的存儲廠商之間,硬件環(huán)境與測試指標要完全一樣,
這樣才有對比。
?
?
另外,不要輕易相信廠商的數據與指標,更不要相信他們廣告式的宣傳。他們的指標是在適合他們的環(huán)境下測試得到的,
如IOPS,可能全部是在存儲cache命中的基礎上得到的,而對于用戶業(yè)務環(huán)境,這樣的情況不可能發(fā)生。
?
?
隨著小型機的飛速發(fā)展,很多大/中型機器上的技術已經移植到小型機上,所以,大型機與小型機的區(qū)別已經不像以前那么明顯,一般只是沿用以前的叫法。
在機器處理能力上,高端的PC SERVER可能比低端的小型機更快,高端的小型機,也可能比部分大/中型機更具有快速處理能力與優(yōu)越的性價比??煽啃苑矫?#xff0c;小型機具有接近大/中型機的可靠性,PC Server在這里是無法比較的。
小型機不僅具有高速的事物處理能力,也具有高效的穩(wěn)定性,比較適合高可用的OLTP數據庫業(yè)務。在評測機器的具體處理能力,也就是性能指標方面,現在又了很多種方法,如TPC-C是一種行業(yè)標準測試項目,旨在衡量聯機事物處理(OLTP)的系統(tǒng)性能與可伸縮性的。這種基準測試項目將對包括查詢、更新及隊列式小批量事務在內的數據庫功能進行測試。許多IT專業(yè)人員將TPC-C視為衡量“真實”O(jiān)LTP系統(tǒng)性能的有效指示器。
主流小型機對比:
IBM小型機系列:
IBM 小型機系列現在基本是 I系列與P系列,從Power5開始,I與P其實是統(tǒng)一的硬件體系,只是
OS許可(以及微碼)不一樣而已。在P系列,從POWER3發(fā)展到現在的Power6,IBM以強勁的CPU處理能力,發(fā)展了眾多的型號。如完整的Power5系列中,有從P505開始到P595結束的一系列機器,在P595中,最多可以支持到2TB的內存與64顆強勁的64位power5+的處理器內核(CORE).最近推出的POWER6,可以到到4.7GHZ的主頻,并支持更復雜的計算模式,例如十進制運算。另外,從Power6與AIX6開始支持更多的虛擬化功能,例如可以把工作負載從一個服務器轉到另一個服務器,而且不會使應用發(fā)生任何中斷.
?
HP小型機系列:
由于HP和COMPAQ合并了,所以HP服務器的產品線顯得有些復雜,即有HP本身的服務器系列,也有Compaq服務器系列.另外,因為采用了Inter 的安騰CPU,小型機方面主要分為兩個系列,一是采用Inter Itanium2的RX系列,以及采用Pa-risc的Rp系列.在Rx系列,有采用Intel Itanium2的RX1620到高性能的Superdome服務器.在Rp系列,也有從Rp3410到Superdome的眾多服務器.
比如Superdome 服務器,就有2TB的內存和192個IO插槽,可以擴展到64路/128顆處理器內核(Core),也就是最多可以采用128顆PA-8800/8900或者是Itanium 2的CPU,是HP的高端小型機。
SUN小型機系列:
?? SUN的主機的市場占有率不如IBM與HP那樣高,原來的主要型號有采用 UltraSparc 3構架的V系列到采用UtralSPARC 4(+)的E系列,例如 Sun Fire V100到E20K與Sun Fire E25K服務器,E20K最多36個UltralSparc 4+雙線程處理器,而E25K可達72個 UltralSparc 4雙線程處理器。
?? SUN在最新產品中,開發(fā)了6款基于SPARC架構、運行Solaris 10開源操作系統(tǒng)的主機。其中 SPARC Enterprise T1000與SPARC Enterprise T2000兩款服務器基于UltralSPARC T1處理器;
?? 數據中心等級的SPARC Enterprise M9000與SPARC Enterprise M8000,以及中端款式的SPARC Enterprise M5000/Enterprise M4000 兩類產品,均采用SPARC 64-4處理器。例如 M9000最多可以達到2TB 內存與64顆 CPU,128個核心(Core)
?
?
注:
不同的廠家,在處理器(processor,也叫CPU)的概念上出現了差異,在IBM與INTEL,AMD的CPU中,一般一個核心(CORE)對應一個處理器,就是通常叫的CPU,而在SUN CMT技術的CPU中,一個硬件芯片,可能存在多個(CORE),但是它們只叫一個處理器(CPU).
小型機的技術:
幾大關鍵技術
1、多核技術與CMT技術
2、SMT技術
3、虛擬化與分區(qū)技術
4、高RAS特性
?
1、多核技術
多核技術可以看成是一種CPU的集成技術,在一個CPU處理模塊(芯片)上,也就是以前的一個CPU空間大小上,可以集成一個或多個Core。一般情況下,因為一個Core就具有一個單獨處理能力與運行能力,也具有單獨的CACHE,所以,在IBM/INTEL/AMD等CPU生產廠家,都是把一個Core當成一個CPU。
而在SUN那里,這個技術被稱為CMT技術,雖然一個CPU處理模塊(芯片)上集成多個Core,但是,卻把每個CPU處理模塊(芯片)才叫一個CPU。這個技術解決了,單位單個CPU主頻上不去,但是單位面積內的CPU芯片大小不變,確具有更強大處理能力的問題。(注意,ORACLE的收費方式不是按物理的CPU來購買LICENSE,而是按實際的Core來收費)
2、SMT技術
如果說多核技術一般指CPU的高集成度,而并發(fā)多線程技術(SMT Symmetic Muti-Threading)則是指
單一物理處理器同時分發(fā)來自多與一個硬件線程上下文的指令,在特定的OS與特定的技術條件下,可以虛化為兩個邏輯的CPU。
如IBM的很一個物理的POWER5 CPU,也就是一個CORE,在OS層面(AIX 5.3以上),將顯示為兩顆邏輯的CPU。
這種技術與硬件構架以及OS都是有關系的,如SMT只有POWER5才支持,而且也要特定的OS,如AIX5.3才支持。也就是說,POWER5上跑AIX5.2,都是不支持這樣的技術的。
在這樣的技術中,每個POWER5 CPU有兩個硬件線程,SMT旨在利用POWER5處理器的超標量特性,以便同時執(zhí)行多個指令。
它的基本理念是:沒有一個單一應用可使像POWER5這樣的超標量處理器達到完全飽和的狀態(tài),因此,部署同時提供輸入的多個應用效果更理想。
按照這樣的設想,SMT技術將在細小的OLTP應用中受益,例如高可用的OLTP數據庫環(huán)境。
而大型的計算業(yè)務,例如浮點密集型的工作(耗費單個CPU很長時間,對浮點單元與內存帶寬消耗比較大),是不適合使用SMT技術的。
當然,可以在OS級別決定是否打開SMT技術,這主要取決于這個技術是否為我們帶來好處,單AIX 5.3默認就是打開SMT的。
?
3、虛擬化技術與分區(qū)技術
虛擬化是一個抽象層,他將物理硬件與操作系統(tǒng)分開,從而提供更高的IT資源利用率和靈活性。分區(qū)技術是虛擬化技術的一個重要體現,目前常用的分區(qū)虛擬化技術是---主機之下,硬件之上的虛擬化:
主機之下,硬件之上的虛擬化:
例如HP的電路板方式的硬分區(qū),IBM的靜態(tài)與動態(tài)分區(qū)(LPAR).在同一個物理主機上,可以把硬件
隔離成幾個部分,每個部分運行不同的OS并且互相沒有影響。更高級的主機內部虛擬化,例如動態(tài)
邏輯分區(qū),可以實現資源在不同的分區(qū)之間的動態(tài)遷移。
?
?
4、高RAS特性
小型機與普通的服務器,也就是常說的PC-SERVER是有很大差別的,最重要的一點是小型機的
高RAS(高可靠性、高可用性、高服務型)特性,以前這是大型機的特性,現在也開始在小型機上實現了。
RAS=RELIABILITY+AVAILABILIT+SERVICEABLITY,它反映了計算機的高可靠性、高可用性、高服務型
三個特點。
具體的含義如下:
高可靠性,即計算機能夠不停機的持續(xù)運轉
高可用性,即重要資源都有備份,能夠檢測到潛在的問題,并且能夠將正在運行的服務轉移到其他資源上去,以減少停機時間,保持生產的持續(xù)運轉;具有實時在線維護和延遲性維護功能。
高服務性,既能夠實時在線診斷,精確定位出問題根本問題所在,做到準確無誤的快速修復。
一般小型機都有自我配置、自我診斷、自我優(yōu)化、自我保護的技術。有些小型機通過上萬個故障
檢測點,幫助用戶定位錯誤根源.
?
關于小機和存儲的關系設計的幾個意見:
1.lv 的劃分盡量跨RAID組。而不要在一個RAID組內做,這樣可以更大的提高磁盤讀寫效率。
2.盡量不要使用普通文件系統(tǒng)方式來存儲ORACLE數據庫的數據文件,在大的IO系統(tǒng)上,特別是高可用
的OLTP環(huán)境上,采用裸設備可以大大提高數據庫的性能,并保持性能持續(xù)穩(wěn)定。
理由如下:
直接寫設備文件,不通過OS級別的緩存,節(jié)約了內存使用。
提升了高強度IO寫的速度,對于頻繁讀寫的系統(tǒng)來說,裸設備可以提高讀寫的性能。
采用裸設備避免了文件系統(tǒng)的開銷,比如維護I-node,空閑塊,超級塊等。
裸設備的異步io/并行io管理一般在內核級別上完成,比文件系統(tǒng)優(yōu)越。
裸設備相對文件系統(tǒng),有更少的BUG,而且更穩(wěn)定。
?
總結
以上是生活随笔為你收集整理的小机、数据库、存储选型应该注意的几个事项(摘自ORACLE高可用环境-陈吉平)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows10电脑自带的录屏工具
- 下一篇: mamp mysql 无法启动_mamp