Tsung筆記之主從模型篇
前言
本篇講解Tsung大致功能組成、結構,以及主從模型,以便總體上掌握。
總體組成
?
tsung_controller
和 tsung
這兩個模塊,負責分布式壓測的核心功能。
代碼組成
從代碼層次梳理一下tsung項目功能組成結構,便于一目了然,方便直接索引。
?
主從模型一覽
設定環境為分布式環境下Tsung集群,下面簡單梳理一下主、從節點啟動流程。
?
流程大致說明:
- 主節點(tsung_controller)通過SSH或其它遠程終端(后面會講到操作更為輕量的完全替代SSH方式)連接到從服務器啟動tsung從節點運行時環境
- 主節點RPC批量啟動tsung client進程
- 主節點為每一個從節點啟動會話監控,控制會話速度,開啟ts_client模擬終端
- 從節點請求主節點具體業務進程,獲取會話指令以及會話具體內容
- 從節點建立到目標壓測服務器的SOCKET網絡連接,開始會話
- 主節點可以通過SSH/其它終端方式連接到目標壓測服務器,啟動從節點,然后收集數據(可選,具體細節,后續文字會講到)
這種模型下:
- 全局嚴格控制模擬終端用戶生成總量和生成速度
- 主節點動態管理從節點生命周期,從生到死,并且掌握著所有會話細節,全局掌控
- 從節點很輕,所有需要的會話指令,都必須請求主節點獲得
主從之間交互流程
下面一張圖簡單說明了主從之間核心模塊交互流程,雖然粗略,核心點也算是涉及到了。
?
后面會對具體協議部分有更為詳細論述。
一次壓測回話(ts_client)工作流程
其實是承接上一個流程圖,已經啟動了一個ts_client模塊,即執行一個完整生命周期會話模擬終端。它的開啟依賴于Tsung Controller啟動ts_launch/ts_launch_static模塊。
大致流程圖如下:
?
會話什么時候結束
- 針對從節點上,(一個終端用戶的)一次完整會話(session):
- 請求主節點ts_config模塊,獲取會話Session信息,包含一次會話需要完成任務總數Count
- 從節點ts_client 每執行一次事件,任務總數Count減1
- 當Count值為0時,說明任務執行完畢,ts_client生命周期圓滿,一次完整會話結束
- 從節點所分配的所有會話都結束了,表示從節點生命周期也會結束
- 主節點控制的所有從節點都結束了,即所有會話都一一完成,那么整體壓測也結束了,整個壓測流程結束
小結
基于Erlang天生分布式基因支持,從節點的生死存亡完全受Tsung主節點的控制,按需創建,任務完成結束,主從協調行云流水般順暢。
嗯,后面將介紹主從實現的一些細節。
posted on 2016-07-23 11:56 nieyong 閱讀(3037) 評論(0) 編輯 收藏 所屬分類: 壓測