1、數據倉庫服務架構
數據倉庫服務(Data Warehouse Service),下面簡稱DWS 。主要為客戶提供數據存儲,數據挖掘,數據分析等功能。其內核采用開源的關系數據庫管理系統Postgres SQL加以定制開發。服務部署在集群上,集群有3~32個虛擬主機組成。用戶使用DWS集群的請求處理流程如下:
1.1、用戶通過客戶端,例如chrome,IE,FireFox等瀏覽器登錄DWS界面,對應於下圖中的1。
1.2、用戶對DWS集群做了一個操作,比如重啟,對應於下圖中的2。
1.3、Nginx根據調度策略將重啟請求下發到某一個console節點上,對應於下圖中的3.
1.4、Console節點將請求通過HAproxy根據某種調度策略,將請求下發到service節點上,對應於圖中的4。
1.5、service節點處理重啟任務,並更新數據庫中相關表的記錄,對應於圖中的5,並返回處理結果。
其它節點功能說明:
1.6、monitor節點:監控集群的狀態。
1.7、billing節點:計費。
1.8、OM Sevice節點(insight):運維節點,一些運維操作會通過該節點下發到service節點上。
1.9、DB節點:數據庫節點,一主一備。
2、可靠性測試的含義與測試過程
可靠性測試是指:系統在常規與意外環境執行和保持其功能的能力,系統必須能以一致性和可重復性的方式執行並保持其功能。(概念出自《敏捷軟件測試:測試人員與敏捷團隊的實踐指南》)
測試過程:
2.1、明確可靠性測試的目標,同一個系統,不同的測試目標設計出來的用例也不一樣。
2.2、了解軟件的架構。
2.3、設計可靠性測試用例。
2.4、執行可靠性測試用例。
2.5、分析可靠性測試結果並輸出測試報告返回給測試經理。
3、用例設計
主要從以下幾個方面來考慮,可靠性測試的原則之一:故障恢復后業務能夠自修復。
3.1、從架構設計圖來看一共涉及的的節點有:console,service,billing,db,insight,monitor。其中只有insight部署在一台主機上,其余節點均部署在2台或2台以上的服務器上,以service為例,一台服務器宕機了是否會影響業務,兩台呢,或者全部宕機后開機能否自行恢復業務呢?
3.2、內存占用率:單個節點的內存占用率達到90%和100%;多個節點 內存占用率達到90%或100%。
3.3、CPU占用率::單個節點的CPU占用率達到90%和100%;多個節點 CPU占用率達到90%或100%。
3.4、磁盤使用率::單個節點的磁盤使用率達到90%和100%;多個節點 磁盤使用率達到90%或100%。
3.5、網路故障:單個節點網絡故障,多個節點網絡故障。單個節點和多個節點某個網卡down掉。
3.6、單個節點重啟,或多個節點重啟。
3.7、功能首次失敗時間,比如:創建DWS集群首次失敗時間,即初始操作和首次失敗之間的平均時間。
3.8、DWS集群長時間運行業務,是否出問題。
3.9、並發操作:比如同時創建50個集群,觀察成功率,可以使用BrupSuite工具。
3.10、業務能否從節點A遷移到節點B,比如創建集群的任務正在節點service1上運行,此時,service1宕機,任務能否成遷移到service2或service3上。
4、可靠性測試過程中用到的工具
寫滿磁盤
參考命令:dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
占滿內存
待補充
占滿CPU
參考:https://blog.csdn.net/robertsong2004/article/details/36879233