压力测试工具tsung初体验

Tsung安装与启动 Tsung安装与使用 一、安装 依赖包 需要安装 erlang、gnuplot、perl5 安装erlang 因为Tsung是基于erlang开发的,所以得先安装这个环境 1、erlang 安装地址:https://www.erlang.org/downloads/otp_src_22.0.tar.gz 安装包存放路径: /root/soft/otp_src_22.0.tar.tar 2、进入到文... 阅读详情

压力测试工具tsung初体验

简介

最近参与开发了公司的评论和点赞的系统,该系统是作为symfony的一个独立plugin,可能会被其它很多系统使用,比如说图片,视频,newsfeed等等,都有可能直接嵌入,所以该独立模块做的尽可能通用,对性能也有一定要求。最终采用以mysql作为储存方案,以redis作为缓存方案的设计。接口开发完后想对接口进行性能负载测试,估算该系统的读写性能的上限。

了解了几个常用的测试工具和与公司之前所用的测试工具进行对比后,最终选定tsung进行测试工具:

tsung是erlang开发的一个开源的多协议分布式负载测试工具,它能用来压力测试HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和 Jabber/XMPP的服务器。它可以分布在多个客户机,并能轻松够模拟成千上万的虚拟用户数并发。

安装

首先是安装tsung,因为最新的tsung是1.6.0版的,系统自带的源可能没有最新版本,所以到官网http://tsung.erlang-projects.org/ 下载源码包来编译,configure && make && make install完成。

配置文件

tsung是根据xml配置文件里的参数内容来进行压测。默认tsung会加载配置文件:~/.tsung/tsung.xml

如果该文件夹下初始为空,则在/usr/share/doc/tsung/examples下有样例的xml文件,http的配置是http_simple.xml

下面来讲几个关键的配置

clients

用户产生的方式

1
2
3
<clients>
  <client host="localhost" use_controller_vm="true" maxusers="30000"/>
</clients>

tsung运行时可以由很多的虚拟机组成,client配置指明这个client机器上最多生成的用户数,如果use_controller_vm为true的话,那么当用户数达到mmaxusers,tsung会自动生成新的VM。

servers
1
2
3
<servers>
  <server host="test.com" port="80" type="tcp"></server>
</servers>

server段可以配置被测服务器的相关信息,也可以配置成集群,如下

1
2
3
4
<servers>
  <server host="server1" port="80" type="tcp" weight="4"></server>
  <server host="server2" port="80" type="tcp" weight="1"></server>
</servers>

这时tsung会根据weight值来选择发起请求的server

monitoring

系统监控服务,配置完后可获取被测server的cpu,内存,负载,数据库的相关信息。可以配置成erlang的监控服务和snmp的监控服务。

1
2
3
4
5
<monitoring>
  <monitor host="garden" type="erlang">
    <mysqladmin port="3306" username="root" />
  </monitor>
</monitoring>
load
1
2
3
4
5
<load>
 <arrivalphase phase="1" duration="3" unit="minute">
   <users maxnumber="100" interarrival="0.02" unit="second" ></users>
 </arrivalphase>
</load>

load段可配置访问的负载,访问可以配成多个阶段,由phase值指定。duration是测试持续时间,unit是单位。

users段的maxnumber限制了生成的最大用户数,interarrival=”0.02”表示0.02秒产生一个新用户,用户按照session的配置顺序执行session中的request。

options
1
2
3
4
5
6
<options>
   <option type="ts_http" name="user_agent">
     <user_agent probability="80">Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Galeon/1.3.21</user_agent>
     <user_agent probability="20">Mozilla/5.0 (Windows; U; Windows NT 5.2; fr-FR; rv:1.7.8) Gecko/20050511 Firefox/1.0.4</user_agent>
   </option>
 </options>

options段可配置一些请求的信息,如agent信息。

sessions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<sessions>
    <session name="http-example" probability="70" type="ts_http">
      <setdynvars sourcetype="random_number" start="1" end ="100">
        <var name="itemid" />
      </setdynvars>
      <transaction name='getlist'>
        <request subst="true">
          <http url="/comment/getList" method="POST" contents = "item_type=image&amp;item_id=%%_itemid%%"></http>
        </request>
      </transaction>
    </session>
    <session name="http-example" probability="30" type="ts_http">
      <setdynvars sourcetype="random_number" start="1" end="100">
        <var name="itemid" />
      </setdynvars>
      <setdynvars sourcetype="random_number" start="20" end="5000000">
        <var name="content" />
      </setdynvars>
      <transaction name='getlist'>
        <request subst="true">
          <http url="/comment/addComment" method="POST" contents = "item_type=image&amp;item_id=%%_itemid%%&amp;content=%%_content%%"></http>
        </request>
      </transaction>
    </session>
  </sessions>

可配置多个子session,进而可测试多个api,可以设置请求概率,在probability里被定义,要求每个session的probability之和是100。类型是http。

sessions里可用for来设定请求次数,如下

1
<for from="1" to="@loop" incr="1" var="counter">

在里面可以设置请求的具体信息。在请求参数里可以带上随机数。随机数和随机字符串的定义如下:

1
2
3
4
5
6
<setdynvars sourcetype="random_number" start="20" end="5000000">
  <var name="xxx" />
</setdynvars>
<setdynvars sourcetype="random_string" length="10">
  <var name="xxx" />
</setdynvars>

以%%_xxx%%的形式来调用,这里必须注意的是,要使用随机数,request必须加上subst=”true”参数,不然随机数无法被引用成功。随机数也可从文件读取,如csv。

http内部可定义header参数:

1
2
3
4
<http_header name="Authorization" value="111"/>
<http_header name="Cookie" value="authToken=%%_auth_token%%; Path=/"/>
<!-- content-Type:POST请求参数的格式,如果是json格式可以这样写 -->
<http_header name="Content-Type" value="application/json"/>

thinktime可用于定义两个请求的间隔时间

1
<thinktime value="1"/>

另外可定义不同的transaction ,这样子结果里就会显示不同transaction的具体信息。

开始测试

运行命令

1
tsung start

开始测试

运行时执行

1
tsung status

可获取tsung运行时的状态

生成报表

测试程序结束后,进入log文件夹下的对应结果文件夹,执行

1
tsung_stats

就可以得到我们想要的结果报表了。

分析结果报表

生成好后的report.html就是测试的最终结果。

Main statistics里有一些总体的信息
Main statistics
有几张重要的结果图如下:

  • tsung产生的用户曲线图
    graphes users simulaneous
    Y轴代表每秒用户数,tsung每秒会产生一批用户,这个统计结果是每十秒统计一次,所有的图的起始位置显示的是0,其实是第一个10秒
  • http接口响应数曲线图(TPS)
    http code
    Y轴是每秒响应数,右上角的200是http状态码,如果有多个状态码,会有多条不同颜色的曲线。
  • http接口响应时间曲线
    mean request
    Y轴是接口响应时间,单位是毫秒,request的线代表请求响应总耗时,connect的线代表tcp链接建立的时间。
后记

经过测试,发现该系统支持的最大写入频率是80次/min,因为并未加入cache, queue等优化方案,是直接同步写库,初始业务量也未必会很大,所以该数据也已满足正式环境的使用。根据测试结果我们改进了一些逻辑SQL,使执行效率尽可能高。

另外还使用了innotop作为mysql的监控工具,htop作为系统负载的监控工具,在这里就不展开介绍了:)

Tsung MQTT压力测试 Tsung MQTT压力测试 参考资料: http://tsung.erlang-projects.org/user_manual/ https://www.cnblogs.com/lingyejun/p/7941271.html https://www.cnblogs.com/saryli/p/9807220.html http://www.51ste.com/share/det-222.html Tsung安装 安装环境 Linux版本:Ubuntu 16.04 LTS Tsung版本:1.7.0 阅读详情

相关推荐

在Ubuntu下使用Tsung对ejabberd服务器进行XMPP压力测试。

今天研究了一下如何使用Tsung对ejabberd服务器进行压力测试,看了N篇文章以后,总结一下在Ubuntu下的安装详细步骤。 1、下载Tsung源代码: 从Tsung的官方网站下载源代码(http://tsung.erlang-projects.org/dist/),目前最新的是tsung-1.4.1.tar.gz,不要下载为Ubuntu封装好的deb,因为下面还要更改一处源代

beactived的专栏 4500

高并发压力测试工具Tsung使用教程

高并发压力测试工具Tsung使用教程 2016-03-05 18852浏览 记录 12评论目录1 下载安装2 运行3 结果4 配置文件4.1 clients4.2 servers4.3 monitoring4.4 load4.5 options4.6 sessionstsung是erlang开发的开源的多协议分布式负载测试工具,可用作HTTP、WebDAV、SOAP、PostgreSQL、MySQ...

大JAVA解决方案 4398

tsung 分布式压测工具

一、什么是tsung       最近想整一个分布式压力测试工具,了解到tsung这个工具,感觉还不错,tsung是由erlang编写的分布式压力测试工具,协议还是支持蛮多的,比如HTTP/SOAP等,具体可见官网说明。tsung需要erlang环境,erlang这个语言就不多说了,专门分布式任务设计的一门语言。 二、环境搭建(ubuntu环境) 1. 搭建erlang环境 wge

左手 1078

Tsung介绍

概述 Tsung是一个开源的多协议分布式负载测试工具,它可以用于强调HTTP、WebDAV、SOAP、PostgreSQL、MySQL、LDAP、MQTT和Jabber/XMPP服务器。 Tsung是一个基于GPLv2许可协议发布的自由软件。 Tsung的目的是模拟用户,以测试基于IP的客户机/服务器应用程序的可伸缩性和性能。您可以使用它来对服务器进行负载和压力测试。许多协议已经被实现和测试,并且...

hyx_try的博客 3301

【tsung】tsung安装与启动

运行环境安装 安装 erlang、gnuplot、perl5 erlang :因为Tsung是基于erlang开发的,所以得先安装这个环境.安装软件 perl5:生成报表的脚本支持环境 gnuplot:报表统计图片生成工具 erlang安装 方式一: apt-get install erlang erlang-src 方式二: yum install erlang erlang-src 验...

sysu_lluozh 776

开源多协议分布式压力测试工具Tsung详解

本文详细介绍开源多协议分布式压力测试工具Tsung。

dvlinker的技术专栏 439

压力测试工具:tsung

http://tsung.erlang-projects.org/user_manual/introduction.html#what-is-tsung 转载于:https://www.cnblogs.com/ribavnu/p/3798203.html

weixin_34187822的博客 87

Windows 11 RDP Wrapper 配置教程与常见问题解决方法

解锁家庭版RDP主机功能(Windows 11家庭版原生不支持作为RDP服务器)突破单用户连接限制,实现多用户同时远程登录(类似服务器版功能)它不修改系统核心文件,通过注入方式工作,相对安全可靠。RDP Wrapper是Windows 11家庭版用户启用远程桌面、突破单用户限制的高效工具。遵循本文步骤可快速完成配置,遇到问题时按常见问题排查方案逐一解决,多数问题可通过更新配置文件或重启服务解决。若长期使用,建议关注官方GitHub仓库的更新,确保兼容性和安全性。

weixin_41521681的博客 1360

Linux压力测试工具Tsung安装、使用和图形报表生成

简介 Tsung 是一个压力测试工具,可以测试包括HTTP, WebDAV, PostgreSQL, MySQL, LDAP, and XMPP/Jabber等服务器。针对 HTTP 测试,Tsung 支持HTTP 1.0/1.1 ,包含一个代理模式的会话记录、支持 GET、POST 和 PUT 以及 DELETE 方法,支持 Cookie 和基本的WWW 认证,同时还支持 SSL。 tsu...

weixin_33916256的博客 275

TikTok网页版X-bougs和_signature参数逆向实战:从断点到RPC调用的完整流程

本文详细解析了TikTok网页版X-bougs和_signature参数的逆向工程实战,从基础断点调试到高级RPC调用,完整还原加密参数的生成过程。通过工具链搭建、加密定位、核心突破及实战演练,帮助开发者深入理解TikTok的加密体系,并构建自动化签名系统。

weixin_28691003的博客 438

Sobel原理及计算过程详解

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。首先,我们需要构建一个Sobel算子,通常是一个 3x3 的矩阵。Sobel算子可以分别计算水平和垂直方向的梯度值,然后将两者合并得到总梯度值。索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度近似值。所以,我们假设选择图像矩阵中的点A(1, 1),即第二行第二列的元素,对应的。接下来,我们将使用Sobel算子计算这个点的梯度值。

2301_76461741的博客 1万+

tsung压力测试

使用tsung对http服务的压力测试及对mysql的测试

阿罗 1万+

当KCF遇见卡尔曼滤波:视觉跟随算法的动态优化实战

本文探讨了KCF算法与卡尔曼滤波在视觉跟随算法中的动态优化实践,通过深度融合策略提升目标跟踪的鲁棒性和实时性。特别针对机器人应用场景,详细解析了在Jetson等嵌入式平台上的优化技巧,包括计算图优化、内存访问优化和多线程流水线设计,实现了30FPS@1080p的稳定跟踪性能。

sugar的博客 957

erlang、tsung压力测试

环境:ubuntu14.04   intelCorei5 64 apt-get install erlang erlang-nox erlang-dev erlang-parasetcols 安装erlang

634

LLC谐振变换器中的软开关艺术:ZVS与ZCS的协同设计

本文深入解析了LLC谐振变换器如何通过巧妙的电路设计,协同实现零电压开关(ZVS)与零电流开关(ZCS),从而大幅降低开关损耗与电磁干扰,提升电源效率。文章结合设计实战,详细阐述了谐振参数计算、器件选型及调试避坑指南,为高效、高功率密度电源设计提供了核心思路与解决方案。

weixin_29216957的博客 349

PIVlab软件入门:从GUI操作到2D2C粒子测速实战

本文详细介绍了PIVlab软件在2D2C粒子测速中的入门与实战应用。从GUI操作到环境搭建,再到图像预处理和核心参数设置,帮助用户快速掌握这一基于MATLAB的开源工具。通过实际案例和技巧分享,展示了PIVlab在流体力学实验中的高效性和实用性。

weixin_42547431的博客 227

基于TSUNG对MQTT进行压力测试-测试结果

p.p1 { margin: 0; font: 16px "PingFang SC Semibold"; color: rgba(0, 0, 0, 1); -webkit-text-stroke: #000000 } p.p2 { margin: 0; font: 11px "Helvetica Neue"; color: rgba(0, 0, 0, 1); -webkit-text-strok...

翎野君的博客 107

2025.06.06【Ribo-seq】|riboWaltz:P-site定位与三碱基周期性分析流程

同学们,大家好!今天我们要学习的是riboWaltz——一款专为Ribo-seq(核糖体足迹测序)数据设计的R包,主要用于P-site定位优化和三碱基周期性分析。P-site的准确定位是Ribo-seq下游所有翻译组学分析的基础,riboWaltz为我们提供了系统、可视化、易用的解决方案。P-site定位优化:自动识别不同长度RPF的最佳P-site偏移量。三碱基周期性分析:可视化RPF在CDS、UTR等区域的分布,评估数据质量。多样本/多条件支持:可同时处理多个样本,便于批量分析和对比。

1791

压力测试工具tsung

压力测试工具tsung 安装erlang环境 #首先下载资源,想下载不同的版本只需要修改版本号即可,最新为19.3 wget http://erlang.org/download/otp_src_18.3.tar.gz #在下载目录中对.tar.gz进行解压 tar -xzvf otp_src_17.3.tar.gz #安装依赖包(安装必须用到的) yum install -y gcc gcc-c...

睨噷蹇蜣的博客 8104

基于机器学习的网络安全态势感知模型研究与实现

基于机器学习的网络安全态势感知模型研究与实现 1. 背景介绍 1.1 网络安全态势感知的重要性 在当今互联网时代,网络安全已经成为一个至关重要的话题。随着网络攻击手段的不断升级和演变,传统的被动防御方式已经难以满足日益

AI大模型应用之禅 1582

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

分布式压力测试工具Tsung:从架构原理到百万并发实战指南

在软件性能工程领域,压力测试是评估系统在高负载下稳定性和扩展性的关键环节。其核心原理是通过模拟大量并发用户请求,探测系统的性能瓶颈与承载极限。随着微服务与分布式架构的普及,传统的单机压测工具在模拟海量并发时往往遇到资源瓶颈,分布式压力测试技术因此成为解决大规模性能验证需求的关键。分布式压测通过主控节点协调多个负载生成节点,能有效突破单机硬件限制,实现弹性的压力扩展,这对于保障电商大促、即时通讯等高并发场景的服务质量具有重要价值。本文聚焦于基于Erlang/OTP构建的开源分布式多协议压力测试工具Tsung,

weixin_28839629的博客 256

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

XMPP、HTTP 模拟压力测试工具 Tsung 教程

一、部署安装 ============== 1)安装依赖 yum -y install perl yum -y install gnuplot   由于需要erlang支持,那么下载erlang-R14B04 wget http://www.erlang.org/download/otp_src_R14B04.tar.gz  tar zxvf opt_src_R14B04.tar.

blade2001的专栏 9420

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

压力测试工具Tsung

1 简介 1.1什么是tsung ? Tsung (以前称为IDX-Tsunami)是一个分布是负载测试工具。它与协议无关,目前可以用来测试HTTP,WebDAV,SOAP,PostgreSQL, MySQL, LDAP, and Jabber/XMPP It is distributed under the GNU General Public License version 2...

abc6772的博客 321

Linux Tsung压力测试安装说明

Linux Tsung 安装详解

MisterXiao的博客 2351

Tsung指南[荐]

1、tsung安装 tsung 一个非常优秀的压力测试工具,在8核32G机器上可以轻易的产生每秒10000个并发请求,且占用的资源很少,当前版本1.5.0 使用erlang开发,需要先安装erlang虚拟机。安装过程略 2、tsung使用 ? 1 $ tsung -f ./tsung/tsung.xml start

Love Life Love Tech 2071
上一篇: Linux实时流量监控工具 - iftop
下一篇: mqtt.fx的安装和使用
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值