RAC平臺的全域性熱塊衝突
全域性熱塊衝突時RAC平臺經常出現的一種等待事件,這種等待如果比較嚴重的話,會對系統的效能產生十分重大的影響,甚至導致資料庫被短時間掛住。
全域性熱塊衝突和普通的熱塊衝突類似,普通的熱塊衝突是在一個單節點上多個會話訪問相同的資料庫導致的等待事件。如果大量會話訪問某個或者某些特定的資料塊,那麼這些資料塊被稱為熱塊。相比單例項環境,全域性熱塊衝突的危害更大,因為全域性的熱塊需要在例項間進行傳遞。嚴重的全域性熱塊衝突會導致系統效能急劇下降。
最典型的案例就是,如果某個應用要對某張表進行大批次的資料插入,而且插入的程式都跑在一個節點上,那麼這個系統可能會出現一些buffer busy waits等待事件,不過不會產生很嚴重的效能問題。如果這個應用的負載均衡方式分佈在不同的節點上,那麼透過STATSPACK/AWR報告中,我們可能看到下面的情況:
Top 5 Timed Events ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Event Waits Time(s) ....
buffer busy waits 17149 12743 .............
gc buffer busy 21057 12348 .............
enq:HW - contention ...............
CPU time ...............
gc current block 2-way ...............
對於這種情況,需要在應用的底層進行設計。比如很常用的一種方法,就是在某張表中設計一個INSTANCE_ID欄位,插入資料時,每個例項插入的資料中都帶有INSTANCE_ID,然後按INSTANCE_ID對這種表進行分割槽,兩個例項之間的gc buffer busy爭用就會大幅減少。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-678478/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 電腦熱鍵衝突巧解決
- RAC全域性等待事件分析事件
- 直播平臺原始碼,將全域性的ArrayList 生成區域性的ArrayList原始碼
- svn檔案衝突,樹衝突詳解
- jQuery的$命名衝突jQuery
- 解決Android引用多個庫的jni架構平臺支援衝突的問題Android架構
- RAC全域性死鎖檢測時間
- 全球混戰正式開啟!Miracle Games《崛起與衝突》今日全平臺上線GAM
- 解衝突用到的命令
- commit 衝突MIT
- 雜湊衝突
- Git 衝突了怎麼辦,如何高效快速的解決程式碼衝突?Git
- POP Animation 和 layoutSubviews 的衝突View
- 如何避免javascript中的衝突JavaScript
- Git 解決衝突Git
- git 解決衝突Git
- 查詢maven衝突Maven
- jQuery多庫衝突jQuery
- [20190515]熱備份模式與rman衝突.txt模式
- 借evdev之力 Linux全域性熱鍵魔改造devLinux
- 資料緩衝區熱鏈和熱塊爭用及解決方法
- git pull衝突的解決方案Git
- 埠衝突,可愛的8080
- JAR衝突問題的解決JAR
- PHP中的trait方法衝突PHPAI
- 關於hash衝突的解決
- ScrollView中用ListView的事件衝突View事件
- 衝突處理的方法(轉載)
- 程式衝突及其解決
- Activemq和Rabbitmq埠衝突MQ
- git pull 衝突解決Git
- Java依賴版本衝突Java
- lvm 名稱衝突LVM
- Manjaro更新出現衝突JAR
- 雜湊衝突詳解
- windows解決埠衝突Windows
- IP衝突解決方案
- SVN 版本衝突解決