「分散式技術專題」事務型、分析型資料資源隔離機制
資源隔離
在分散式系統裡通常將程式進行資源隔離,然後在同一個程式裡的各種業務都共享執行緒池對外提供服務,這就經常會遇到這樣的問題:分析型的負載較高,搶佔了執行緒池裡的大部分執行緒資源,從而會造成事務業務的服務質量下降;或者某個業務負責較高,使其他的業務質量下降。同一個程式內新加入一個業務,這個業務會搶佔其他業務的資源,從而造成系統的不穩定,比如業務效能抖動;難以除錯,比如同一個程式裡的
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
- 資源隔離技術之記憶體隔離記憶體
- 資料庫事務隔離級別分析----轉載資料庫
- 資料庫事務隔離級別資料庫
- 「分散式技術專題」事務基礎及特性分散式
- 「分散式技術專題」資料分佈(原理、資料分片)分散式
- 分散式事務和資料來源配置分散式
- 資料庫事務與事務的隔離級別資料庫
- 資料庫事務與隔離級別資料庫
- 資料庫事務及其隔離級別資料庫
- ORACLE資料庫事務隔離級別Oracle資料庫
- TDSQL交易型分散式資料庫背景分析SQL分散式資料庫
- 「分散式技術專題」資料切分與合併分散式
- 如何理解資料安全隔離技術
- Mysql事務隔離級別與鎖機制MySql
- SQL鎖機制和事務隔離級別SQL
- 資料庫選型解讀,分散式資料庫帶來的技術革命資料庫分散式
- 從 Oracle 轉型 MySQL 分散式事務資料庫的實戰旅途OracleMySql分散式資料庫
- PostgreSQL的事務隔離分析SQL
- 聊聊資料庫的事務隔離級別資料庫
- Oracle資料庫事務隔離級別概述Oracle資料庫
- Apache Pulsar分散式事務機制Apache分散式
- 微服務熔斷隔離機制及注意事項微服務
- 資料庫事務併發問題----各種事務隔離下的情況資料庫
- [資料庫]事務的4種隔離級別資料庫
- MySQL資料庫事務隔離性的實現MySql資料庫
- MySQL資料庫引擎、事務隔離級別、鎖MySql資料庫
- 資料庫事務的四種隔離級別資料庫
- 資料庫事務併發產生的問題以及事務的隔離級別資料庫
- 詳解Mysql事務隔離級別與鎖機制MySql
- MySQL學習系列之InnoDB下事務隔離機制MySql
- 資料庫事物、隔離等級及資料庫鎖機制資料庫
- 搞懂分散式技術17:淺析分散式事務分散式