「分散式技術專題」事務型、分析型資料資源隔離機制
資源隔離
在分散式系統裡通常將程式進行資源隔離,然後在同一個程式裡的各種業務都共享執行緒池對外提供服務,這就經常會遇到這樣的問題:分析型的負載較高,搶佔了執行緒池裡的大部分執行緒資源,從而會造成事務業務的服務質量下降;或者某個業務負責較高,使其他的業務質量下降。同一個程式內新加入一個業務,這個業務會搶佔其他業務的資源,從而造成系統的不穩定,比如業務效能抖動;難以除錯,比如同一個程式裡的
10個業務共享同一個執行緒池,當出現故障時難以透過簡單的日誌判斷是哪個業務出了問題。因此,希望透過一種機制處理上面的問題,資源隔離的方式包括程式隔離和執行緒隔離。
resources_isolation
隔離型別
1.程式隔離
程式級別隔離通常指的是容器化隔離,比如透過使用 docker實現業務程式之間的資源隔離;
2. 執行緒隔離
執行緒級別隔離是指給每個跑在程式裡的業務都按業務型別建立一個執行緒池,從而實現執行緒級別細粒度的資源隔離,執行緒隔離具有以下優勢:
•提高業務可靠性,減少業務受其他業務影響的程度,當一個業務耗盡自身的執行緒資源後也不會影響另外一個業務的服務質量;
•降低新加入的業務的給系統帶來的風險,比如當前系統的一個程式用例中有10個業務。當新加入一個業務時,必然會搶佔此前10個業務的執行緒資源,從而給系統帶來不穩定,比如效能抖動;
•利於除錯,給每一個業務都分配一個執行緒池名稱,當業務出故障時,透過執行緒池名稱可以很方便地定位是哪個業務出了故障,並且透過監控執行緒池的請求失敗次數、超時次數、拒絕請求次數等可以實時的反應當前業務服務質量。
資源隔離的實現
1.記憶體資源隔離
監控每個任務的程式樹或者執行緒樹,程式樹和執行緒樹使用的總實體記憶體或者總虛擬記憶體量超過了預先設定值,則依次傳送 TERM和KILL兩個訊號將整個程式樹殺死。也可以通引數配置進行資源隔離。
2.CPU資源隔離
CPU資源按照百分比進行使用和隔離,透過引數的引數實現的,這種方式能夠保證每個節點上的cpu資源得到充分的共享和使用,從而產生較高的CPU利用率。限制每個執行容器的CPU資源使用上限,透過嚴格限制cpu使用上限,即使機器上仍有大量空閒CPU資源,也不會允許使用。限制使用的CPU上限,需要注意的是,資源管理系統允許配置每個節點上可使用的物理cpu個數,以及物理cpu與虛擬cpu個比例,而使用者申請資源時,只能申請虛擬cpu。
3.IO資源隔離
IO資源分為磁碟IO和網路IO兩種。IO資源的隔離比CPU和記憶體複雜的多,為了量化IO資源,透過“虛擬磁碟”(vdisk),使用cgroup的blkio模組實現磁碟IO隔離。當然,在實現該功能之前,還需要將IO資源加入排程器管理的範疇,比如公平排程器或者容量排程器,可以對磁碟IO和網路IO進行排程。
以上為事務型、分析型資料資源隔離機制, 「分散式技術專題」是國產資料庫 hubble 團隊精心整編,專題會持續更新,歡迎大家保持關注。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026685/viewspace-2935133/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分析型資料庫:分散式分析型資料庫資料庫分散式
- 「分散式技術專題」副本機制分散式
- 分析資料庫的事務隔離級別在資料庫選型分析的時候很重要資料庫
- 資源隔離技術之記憶體隔離記憶體
- mysql 事務,鎖,隔離機制MySql
- 「分散式技術專題」事務基礎及特性分散式
- 「分散式技術專題」資料分佈(原理、資料分片)分散式
- 「分散式技術專題」資料切分與合併分散式
- TDSQL交易型分散式資料庫背景分析SQL分散式資料庫
- 資料庫事務與事務的隔離級別資料庫
- 資料庫事務與隔離級別資料庫
- 如何理解資料安全隔離技術
- Mysql事務隔離級別與鎖機制MySql
- 從 Oracle 轉型 MySQL 分散式事務資料庫的實戰旅途OracleMySql分散式資料庫
- 聊聊資料庫的事務隔離級別資料庫
- Apache Pulsar分散式事務機制Apache分散式
- 資料庫事務併發問題----各種事務隔離下的情況資料庫
- 微服務熔斷隔離機制及注意事項微服務
- 混部之殤-論雲原生資源隔離技術之CPU隔離(一)
- MySQL資料庫引擎、事務隔離級別、鎖MySql資料庫
- [資料庫]事務的4種隔離級別資料庫
- MySQL資料庫事務隔離性的實現MySql資料庫
- 開源分散式支援超大規模資料分析型資料倉儲Apache Kylin實踐-上分散式Apache
- 開源分散式支援超大規模資料分析型資料倉儲Apache Kylin實踐-下分散式Apache
- 資料庫事務併發產生的問題以及事務的隔離級別資料庫
- 新年新技術:最佳化擴充套件分散式資料庫的隔離級別套件分散式資料庫
- 「分散式技術專題」資料分佈(資料複製、資料分片及優劣勢)分散式
- MySQL學習系列之InnoDB下事務隔離機制MySql
- 詳解Mysql事務隔離級別與鎖機制MySql
- 十問分散式資料庫:技術趨勢、選型及標準思考分散式資料庫
- 搞懂分散式技術17:淺析分散式事務分散式
- 事務隔離
- 深入理解Mysql事務隔離級別與鎖機制問題RLOGMySql
- 資料庫系列:事務的4種隔離級別資料庫
- Yarn資源隔離Yarn
- 「分散式技術專題」資料庫常見的JOIN演算法分散式資料庫演算法
- 【分散式技術專題】「分散式技術架構」一文帶你釐清分散式事務協議及分散式一致性協議的演算法原理和核心流程機制(Paxos篇)分散式架構協議演算法
- 搞懂分散式技術19:使用RocketMQ事務訊息解決分散式事務分散式MQ