聶永的博客

          記錄工作/學習的點點滴滴。

          Tsung筆記之主從模型篇

          前言

          本篇講解Tsung大致功能組成、結構,以及主從模型,以便總體上掌握。

          總體組成

          ?

          tsung_controllertsung 這兩個模塊,負責分布式壓測的核心功能。

          代碼組成

          從代碼層次梳理一下tsung項目功能組成結構,便于一目了然,方便直接索引。

          tsung_struct?

          主從模型一覽

          設定環境為分布式環境下Tsung集群,下面簡單梳理一下主、從節點啟動流程。

          tsung_master_slave?

          流程大致說明:

          • 主節點(tsung_controller)通過SSH或其它遠程終端(后面會講到操作更為輕量的完全替代SSH方式)連接到從服務器啟動tsung從節點運行時環境
          • 主節點RPC批量啟動tsung client進程
          • 主節點為每一個從節點啟動會話監控,控制會話速度,開啟ts_client模擬終端
          • 從節點請求主節點具體業務進程,獲取會話指令以及會話具體內容
          • 從節點建立到目標壓測服務器的SOCKET網絡連接,開始會話
          • 主節點可以通過SSH/其它終端方式連接到目標壓測服務器,啟動從節點,然后收集數據(可選,具體細節,后續文字會講到)

          這種模型下:

          • 全局嚴格控制模擬終端用戶生成總量和生成速度
          • 主節點動態管理從節點生命周期,從生到死,并且掌握著所有會話細節,全局掌控
          • 從節點很輕,所有需要的會話指令,都必須請求主節點獲得

          主從之間交互流程

          下面一張圖簡單說明了主從之間核心模塊交互流程,雖然粗略,核心點也算是涉及到了。

          tsung_slave_flow_detai?

          后面會對具體協議部分有更為詳細論述。

          一次壓測回話(ts_client)工作流程

          其實是承接上一個流程圖,已經啟動了一個ts_client模塊,即執行一個完整生命周期會話模擬終端。它的開啟依賴于Tsung Controller啟動ts_launch/ts_launch_static模塊。

          大致流程圖如下:

          ts_client_structure?

          會話什么時候結束

          • 針對從節點上,(一個終端用戶的)一次完整會話(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)  編輯  收藏 所屬分類: 壓測

          公告

          所有文章皆為原創,若轉載請標明出處,謝謝~

          新浪微博,歡迎關注:

          導航

          <2016年7月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          統計

          常用鏈接

          留言簿(58)

          隨筆分類(130)

          隨筆檔案(151)

          個人收藏

          最新隨筆

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 荔浦县| 天等县| 新竹市| 延津县| 兴国县| 阿城市| 庆云县| 家居| 岑溪市| 临城县| 丰城市| 五指山市| 阿克陶县| 闽清县| 合阳县| 东丰县| 吴江市| 鄂尔多斯市| 乌恰县| 靖远县| 涿鹿县| 乌审旗| 图们市| 延吉市| 稷山县| 丘北县| 新泰市| 晋中市| 湟中县| 桐梓县| 清远市| 公主岭市| 班戈县| 海淀区| 恩施市| 肃南| 蓝山县| 萝北县| 岑巩县| 石景山区| 四子王旗|