• 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时使用

    [root@tester~]#export PATH=$PATH:/usr/local/erlang/bin/

    验证erlang是否安装成功

    [root@tester~]#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 当前版本信息。

    [root@tester~]#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命令查看是否添加成功



  • 相关阅读:
    学习、发现和创造一切皆有规律
    Ubuntu12.04下建立交叉编译环境、使用QEMU模拟CortexA9、QEMU运行uboot
    基于ARM的SoC设计入门[zz]
    ARM指令集详解[zz]
    电子工程自学步骤与书籍非电子专业
    IC设计的前端和后端[zz]
    [转]用C#获取IE临时文件
    二行代码解决全部网页木马(含iframe/script木马)(zt)
    winform 分页控件,源码下载
    在UpdatePanel中GridView导出EXECL问题
  • 原文地址:https://www.cnblogs.com/saryli/p/9807043.html
Copyright © 2020-2023  润新知