zoukankan      html  css  js  c++  java
  • 01 tsung安装

    一、tsung介绍

    常用的Windows端压力测试工具可满足低并发的服务压测需求,对TPS超过10000的服务进行压测,以上工具将会达到自身瓶颈(自身资源占用较高,模拟用户量上不去),难以满足测试需求。

    而在我们诸多业务线中,经常有高并发服务的压测需求,传统工具无法满足测试需求,怎么办?

            tsung就为我们解决这样的问题;

    —  Tsung是开源的基于Erlang语言开发的多协议分布式压力测试工具,它能用来压力测试HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和 Jabber/XMPP的服务器。它可以单机使用,也可以分布在多个客户机,并能够模拟成千上万的虚拟用户数并发。

    —  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内部实现: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进程中模拟用户的行为完成与服务器的通信。

      

    一、安装

    系统需要支持ssh2、gcc编译环境(gcc -v)、perl(perl -v)

    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

    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

    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,执行以下操作:

    l  yum install python-pip

    l  没有python-pip包就执行命令 yum -y install epel-release

    l  执行成功之后,再次执行yum install python-pip

    l  对安装好的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命令查看是否添加成功

  • 相关阅读:
    form表单js提交
    弹筐里同一个按钮判断是从哪里点击过来的form
    微服务深入浅出(5)-- 声明式调用Feign
    微服务深入浅出(4)-- 负载均衡Ribbon
    微服务深入浅出(3)-- 服务的注册和发现Eureka
    微服务深入浅出(2)-- 微服务对比单体应用的优势
    微服务深入浅出(1)-- SpringBoot
    Redis(Remote Dictionary Server)入门
    选择Memcached还是Redis?
    蓝牙4.0 BLE入门
  • 原文地址:https://www.cnblogs.com/pymi/p/9072180.html
Copyright © 2011-2022 走看看