tsung 学习

tsung简介:

?  Tsung是开源的基于Erlang语言开发的多协议分布式压力测试工具,它能用来压力测试HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和 Jabber/XMPP的服务器。它可以单机使用,也可以分布在多个客户机,并能够模拟成千上万的虚拟用户数并发。1.5.1版本后开始支持mqtt,最新版本1.6.0,1.6.0版本开始支持mqtt的用户名密码认证。

?  Tsung在运行时,可以由多个虚拟机组成,每个虚拟机下有很多用户,每个用户可以产生很多session,一个session由很多request组成,这是一个很典型的树状结构。tsung使用这个树状结构来生成压力。

?  Tsung的每一个虚拟用户就是一个erlang的轻量进程,这点和loadrunner有很大的区别(loadrunner多线程);erlang虚拟用户完成session后就消失;大量的虚拟用户(erlang轻量进程)建立在erlangVM上;一台测试机可以启多个erlangVM,目前按照1个cpu启动1个erlangVM。

?  “小型”的压力测试一般不需要很多tsung客户机,一台tsung就可以打出很大的压力, 因为tsung使用了epoll技术,在一个进程中,就可以管理上万级别的socket(注意ulimit -n的限制),相对于其它压力测试工具使用多线程,在打出相同压力的情况下,tsung对本机的资源消耗要小得多。另外,tsung的多进程可以充分使用CPU的多核,可以更充分地利用客户机的硬件资源

tsung工作原理:

(1)Tsung的每一个虚拟用户就是一个erlang的轻量进程。这点和loadrunner有很大的区别。(2)虚拟用户完成session后就消失。(3)大量的虚拟用户(erlang轻量进程)建立在erlangVM上。(4)一台测试机可以启多个erlangVM,目前按照1个cpu启动1个erlangVM

Tsung内部实现:Tsung主要由tsung_controller和tsung两个应用共同完成压力测试,其中tsung_controller主要负责配置文件的解析和服务监控;tsung主要负责压力的产生,并完成与服务器的通信。

Tsung运作的大概流程:

1. 启动tsung_controller应用,初始化相关进程,然后由ts_config_server进程完成配置文件的解析

2. 根据配置需要启动对服务器的监控数据的统计,日志的记录等

3. 根据配置在不同节点上的erlang虚拟机进程,启动tsung应用,然后由ts_launcher进程和ts_launcher_static进程开始产生压力,这两个进程会不断创建出ts_client进程,最终在ts_client进程中模拟用户的行为完成与服务器的通信。

tsung安装:

Tsung运行环境安装

检查安装一下依赖包,以免在安装的时候报错.(操作系统的软件包完全安装时,这些包通常都会装进去,所有也可以跳过,此步骤,后面遇到问题时,少哪包再装哪个包,逐个解决。)

rpm -qa build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel

每个包系统盘或者镜像中都有。

安装 erlang、gnuplot、perl5

erlang :因为Tsung是基于erlang开发的,所以得先安装这个环境.安装软件

perl5:生成报表的脚本支持环境

gnuplot:报表统计图片生成工具

1、  安装erlang

tsung基于erlang,必须先安装运行环境

下载地址:http://www.erlang.org/downloads

其他系统可以直接命令安装:

  • For Homebrew on OS X: brew install erlang
  • For MacPorts on OS X: port install erlang
  • For Ubuntu and Debian: apt-get install erlang
  • For Fedora: yum install erlang
  • For FreeBSD: pkg install erlang

安装命令:

cd /usr/local/

mkdir -p erlang

wget http://www.erlang.org/download/otp_src_20.0.tar.gz

tar -zxvf otp_src_20.0.tar.gz

cd otp_src_20.0/

./configure --prefix=/usr/local/erlang

make

make install

安装完成输入/usr/local/erlang/bin/erl验证安装是否成功

如果执行./configure --prefix=/usr/local/erlang时报错:

则执行yum install -y ncurses-devel

然后再执行./configure --prefix=/usr/local/erlang

设置环境变量以便下一步安装Tsung时使用

[[email protected]~]#export PATH=$PATH:/usr/local/erlang/bin/

验证erlang是否安装成功

[[email protected]~]#erl

 

显示下面样子结果说明安装成功:

 

2、  安装tsung

下载地址:http://tsung.erlang-projects.org/

cd /usr/local/

mkdir -p tsung

wget http://tsung.erlang-projects.org/dist/tsung-1.6.0.tar.gz

tar -zxvf tsung-1.6.0.tar.gz

cd tsung-1.6.0/

./configure --prefix=/usr/local/tsung --with-erlang=/usr/local/erlang

make

make install

安装完成运行:/usr/local/tsung/bin/tsung –h 校验是否安装成功

3、  安装gnuplot 和 perl5

生产图表报告,支持tsung_stats.pl

命令查看显示perl 当前版本信息。

[[email protected]~]#perl –v

l  perl5 安装报告需要用到

https://www.perl.org/get.html

centos自动安装

l  gnuplot 图形库

yum install -y gnuplot gd libpng zlib

查看看gnuplot版本

l  报告模板:

http://template-toolkit.org/download/index.html

cd /usr/local/

wget http://cpan.org/modules/by-module/Template/Template-Toolkit-2.26.tar.gz

tar -zxvf Template-Toolkit-2.26.tar.gz

cd Template-Toolkit-2.26/

perl Makefile.PL

make

make test

make install

  

如果生产Makefile时,报错:

解决办法:

yum install –y perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

然后重新执行 perl Makefile.PL

4、  安装 python 和 matplotlib

图表对比,支持tsung-plotter

系统自带python

安装matplotlib

pip install matplotlib

如果没有安装pip,执行以下操作:

yum install python-pip

没有python-pip包就执行命令

yum -y install epel-release

执行成功之后,再次执行

yum install python-pip 

对安装好的pip进行升级

 pip install --upgrade pip

安装好pip,再执行

pip install matplotlib

以上就把需要基本包都安装完了!

注意:如果需要使用PostgreSQL、mysql、LDAP等模块还需安装相应的插件

5、  配置环境变量

修改/etc/profile文件使其永久性生效,并对所有系统用户生效

export PATH=$PATH:$JAVA_HOME/bin:/usr/local/erlang/bin:/usr/local/tsung/bin:$PATH

另外在文件末尾增加ulimit –n 65536,设置文件句柄数,后文将详细介绍。

最后:执行 命令source /etc/profile或 执行点命令 ./profile使其修改生效,执行完可通过echo $PATH命令查看是否添加成功

原文地址:https://www.cnblogs.com/saryli/p/9807043.html

时间: 2024-10-10 08:24:41

tsung 学习的相关文章

OpenFire源码学习之三十二:使用Tsung测试openfire(下)

Tsung使用 由于我们只是对openfire进行测试,因此我们主要讲解利用jabber_register.xml在openfire上面注册用户,以及利用jabber.xml模拟用户登录openfire上线.离开.会话操作的压力测试. 注册用户 1.执行以下命令进入到安装目录下的examples目录: # cd /usr/local/tsung/share/doc/tsung/examples/ 2.修改jabber_register.xml文件 3将修改后的jabber_register.xm

基于Locust、Tsung的百万并发秒杀压测案例[转发]

原博客地址http://f.dataguru.cn/article-9116-1.html 不久前,数人云联合清华大学交叉信息研究院 OCP 实验室通过 10 台 OCP 服务器成功承载了百万并发 HTTP 请求. 此次实验设立的目标是在物理资源最小值的情况下完成 100 万并发处理,通过此次实验,最大化验证了基于 Mesos 和 Docker 技术的数人云 DCOS (数据中心操作系统)承载高压的能力. 百万压测工具与硬件 压测工具 本次选择的加压工具是分布式压测工具 Locust + Tsu

Vue.js学习笔记:属性绑定 v-bind

v-bind  主要用于属性绑定,Vue官方提供了一个简写方式 :bind,例如: <!-- 完整语法 --> <a v-bind:href="url"></a> <!-- 缩写 --> <a :href="url"></a> 绑定HTML Class 一.对象语法: 我们可以给v-bind:class 一个对象,以动态地切换class.注意:v-bind:class指令可以与普通的class特

Java多线程学习(吐血超详细总结)

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 目录(?)[-] 一扩展javalangThread类 二实现javalangRunnable接口 三Thread和Runnable的区别 四线程状态转换 五线程调度 六常用函数说明 使用方式 为什么要用join方法 七常见线程名词解释 八线程同步 九线程数据传递 本文主要讲了java中多线程的使用方法.线程同步.线程数据传递.线程状态及相应的一些线程函数用法.概述等. 首先讲一下进程和线程

微信小程序学习总结(2)------- 之for循环,绑定点击事件

最近公司有小程序的项目,本人有幸参与其中,一个项目做下来感觉受益匪浅,与大家做下分享,欢迎沟通交流互相学习. 先说一下此次项目本人体会较深的几个关键点:微信地图.用户静默授权.用户弹窗授权.微信充值等等. 言归正传,今天分享我遇到的关于wx:for循环绑定数据的一个tips:  1. 想必大家的都知道wx:for,如下就不用我啰嗦了: <view class="myNew" wx:for="{{list}}">{{item.title}}<view

【安全牛学习笔记】

弱点扫描 ╋━━━━━━━━━━━━━━━━━━━━╋ ┃发现弱点                                ┃ ┃发现漏洞                                ┃ ┃  基于端口五福扫描结果版本信息(速度慢)┃ ┃  搜索已公开的漏洞数据库(数量大)      ┃ ┃  使用弱点扫描器实现漏洞管理            ┃ ╋━━━━━━━━━━━━━━━━━━━━╋ [email protected]:~# searchsploit Usage:

winform学习日志(二十三)---------------socket(TCP)发送文件

一:由于在上一个随笔的基础之上拓展的所以直接上代码,客户端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Sockets; using Sys

零基础的人该怎么学习JAVA

对于JAVA有所兴趣但又是零基础的人,该如何学习JAVA呢?对于想要学习开发技术的学子来说找到一个合适自己的培训机构是非常难的事情,在选择的过程中总是 因为这样或那样的问题让你犹豫不决,阻碍你前进的步伐,今天就让小编为您推荐培训机构新起之秀--乐橙谷Java培训机构,助力你成就好未来. 选择java培训就到乐橙谷 北京有什么好的Java培训机构?来乐橙谷北京学Java,零基础走起,乐橙谷Java基础班授课老师经验非常丰富,课程内容安排合理,适合于有一点点Java基础甚至一点都不会Java的同学学

最全解析如何正确学习JavaScript指南,必看!

划重点 鉴于时不时,有同学私信问我:怎么学前端的问题.这里统一回复一下,如下次再遇到问我此问题同学,就直接把本文链接地址发给你了. "前端怎么学"应该因人而异,别人的方法未必适合自己.就说说我的学习方法吧:我把大部分时间放在学习js上了.因为这个js的学习曲线,先平后陡.项目实践和练习啥的,我不说了,主要说下工作之外的时间利用问题.我是怎么学的呢,看书,分析源码.个人这几天统计了一下,前端书籍目前看了50多本吧,大部分都是js的.市面上的书基本,差不多都看过. 第一个问题:看书有啥好处