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