聂永的博客

记录工作/学习的点点滴滴。

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 阅读(2951) 评论(0)  编辑  收藏 所属分类: 压测


只有注册用户登录后才能发表评论。


网站导航:
 

公告

所有文章皆为原创,若转载请标明出处,谢谢~

新浪微博,欢迎关注:

导航

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

统计

常用链接

留言簿(58)

随笔分类(130)

随笔档案(151)

个人收藏

最新随笔

搜索

最新评论

阅读排行榜

评论排行榜