千尺之台,始於壘土」,硬體架構是決定rac環境執行效能最基礎的部分。下面是乙個比較簡單的rac架構拓撲圖,乙個儲存、兩台主機、三條網路,構成了一套rac環境。
使用者通過業務網發起乙個查詢請求,資料庫會判斷要請求的資料塊在兩個節點的記憶體(buffer cache)中是否存在,如果存在,這些資料塊就通過私網複製傳遞到需要的節點上,如果沒有,再從儲存讀取到記憶體。在這個過程中,私網負責資料塊傳遞及鎖控制方面的通訊,而儲存,除了要響應資料請求,還要負責儲存資料和記錄日誌。所以,共享儲存和私有網路被認為是rac系統的核心和靈魂。
換句話說,如果這兩部分元件的效能有問題,對rac環境的影響也是最大的。
既然這兩部分元件在rac環境中如此重要,在做基礎硬體選型及規劃的時候,需要基於業務系統的規劃要求,了解硬體環境是否能夠滿足業務的發展需要,把好效能優化的第一關。
在rac環境中,儲存層面最關注的指標包括i/o吞吐量、iops、i/o延時;而私有網路層面最關注的是頻寬和網路延時。這裡順便介紹兩個工具:orion和netperf,可以很好地滿足這兩部分元件的測試需求。
使用冗餘的網路連線
雙公網、雙私網、多儲存鏈路。公網(業務網)建議每個主機使用兩塊網絡卡做網絡卡繫結;私網配置兩塊網絡卡,安裝的時候都選上,集群就會為它們配置haip;儲存要使用多條儲存鏈路,並安裝多路徑軟體。這樣做的好處,一是消除單點故障,另外有些配置還能夠起到負載均衡的作用。
私網建議使用萬兆的頻寬,使用單獨的交換機
萬兆頻寬是為了應對私網流量大的壓力,減輕網路頻寬出現瓶頸的問題。使用共享的交換機,乙個是對於壓力大的系統,頻寬可能互相爭用或限制,另外由於haip是虛擬位址,如果用vlan,還可能可能遇到ip與閘道器位址衝突的問題。所以,重要系統的私網最好能使用單獨交換機。
用asm管理磁碟、磁碟組使用normal冗餘方案
asm技術在11g已經非常成熟,不但效能好,對於磁碟的管理維護也特別方便。如果有條件的話,建議使用normal的冗餘方式,這樣做的好處,乙個是資料多乙份備份,另外就是asm有一些特性能夠提公升讀寫效率,例如11g的優先讀取失敗組,12c的均勻讀取失敗組。
磁碟太小的區間是100g到2t,同乙個磁碟組的磁碟大小要相同
磁碟大小相同有利於磁碟的容量管理和磁碟組中資料的rebalance效能,11g的資料庫軟體還不支援大於2t的磁碟。
資料檔案與歸檔檔案存放在不同的磁碟組中
把不同的檔案放在不同的磁碟組,可以起到i/o分流的作用,但這個設計不僅僅是出於讀寫效能的考慮,也是基於資料安全的考慮,如果資料和歸檔放在同乙個磁碟組,萬一這個磁碟組有問題,不但資料檔案讀不出來,使用備份恢復的時候,連歸檔日誌也讀不出來,那就會產生資料丟失的風險。
將redo日誌放在raid1+0磁陣上,而不是raid5和ssd盤上
關於這點最近剛好遇到乙個案例,這套系統提交特別頻繁,log file sync等待事件很嚴重。由於是效能測試階段,所以針對性地做了很多測試,redo日誌放在底層做raid5的儲存盤上效能是最差的,而放在raid10上是最好的。因為提交特別頻繁的系統,寫redo日誌都是小i/o操作,對儲存的iops效能要求特別高。raid5的iops效能是最差的,ssd盤iops效能雖然很高,但是它的資料塊擦寫的方式,存在寫峰值的問題。大多數情況下log write效能都很好,當峰值一出現,就會出現很多個使用者會話併發等待lgwr寫操作的完成,進而產生被成倍數放大的log file sync等待。所以我們建議對於效能要求特別高的聯機業務系統,redo日誌要放在普通的機械磁碟的raid10磁陣上。另外,這是乙個存在爭議的問題,可能某些高階全快閃儲存器儲存上並不存在寫峰值的問題,因此如果是特別重要、壓力特別大的系統,測試過程是不可或缺的。
閱讀全文
優化全攻略 相關命令
接下來我們要討論的是資料庫效能優化的另一方面,即運用資料庫伺服器內建的工具輔助效能分析和優化。show 執行下面這個命令可以了解伺服器的執行狀態 mysql showstatus 該命令將顯示出一長列狀態變數及其對應的值,其中包括 被中止訪問的使用者數量,被中止的連線數量,嘗試連線的次數,併發連線數...
查詢優化 優化MySQL資料庫效能全攻略
1 選取最適用的字段屬性 另外乙個提高效率的方法是在可能的情況下,應該盡量把字段設定為not null,這樣在將來執行查詢的時候,資料庫不用去比較null值。對於某些文字字段,例如 省份 或者 性別 我們可以將它們定義為enum型別。因為在mysql中,enum型別被當作數值型資料來處理,而數值型資...
資料庫優化全攻略
數 據庫是企業資訊的核心,其應用水平的高低直接影響到企業管理水平。選擇了乙個高效能的資料庫產品不等於就有乙個好的資料庫應用系統,如果資料庫系統設計不 合理,不僅會增加客戶端和伺服器端程式的程式設計和維護的難度,而且還會影響系統實際執行的效能。本專題主要講解資料庫各種效能優化技術,從而避免磁碟i o ...