目录
4.3 点击【压测】,勾选【endpoint】,点击【开始压测】
0.学习链接
TarsdocGitHub在线文档-TarsBenchmark
TARS基金会的CSDN-TarsBenchmark-服务性能压测利器
QcloudCommunity的CSDN-压测利器:TarsBenchmark正确打开方式
1.初识TarsBenchmark
tb(tars benchmark)是专门为tars服务量身订做的无码压测工具,具备以下特性:
(1)网络高性能:8核机器TPS支持超过20W/S;
(2)通讯扩展性:网络层支持TCP/UDP两种协议方式;
(3)协议扩展性:应用层支持Http,Tars服务压测, 也保持对第三方协议开放;
(4)完善的实时统计与监控支持。提供周期内的请求数/TPS/耗时/成功率分布.
它支持与TarsWeb 结合使用,提供友好的操作界面对服务进行测试.
2.TarsBenchmark的框架结构
tb工具采用多进程方式设计,主进程负责资源调度和外显,压测进程负责网络收发和统计,网络层可以
灵活选择TCP or UDP; 采用协议代理工厂模式管理各类service协议,默认支持http/tars协议的压测,
支持协议自动发现; 主进程和压测进程之间通过控制信息通过信号方式交互,数据通过无锁共享内存队
列交互,以达到最低的资源消耗,主进程会周期地搜集各压测进程的网络统计信息,经过简单汇总之后
输出到控制台.
3.安装部署
3.1 前置条件
3.1.1 TarsCpp版本要求
TarsCpp版本(>=v2.4.0)
3.1.2 软件依赖
3.1.3 依赖安装包
源码编译过程需要安装:gcc, glibc, bison, flex, cmake
例如,在Centos7下,执行:
yum install glibc-devel gcc gcc-c++ bison flex cmake
3.2 下载源码
cd /home/muten/module/TARS/TarsFramework/
git clone https://github.com/TarsCloud/TarsBenchmark.git(巨慢,不过还是能下载的)
3.3 源码安装
git clone https://github.com/TarsCloud/TarsBenchmark.git
cd TarsBenchmark && mkdir build && cd build
cmake .. && make all
3.4 一键安装可直接在界面操作压力测试
采用最新版本的TarsWeb, 就可以实现在线压测Tars服务,一键发布步骤如下:
./install.sh webhost token adminsip nodeip
参数说明
webhost TarsWeb管理端的host或ip:port
token TarsWeb管理端的token,可以通过管理端新增及获取http://webhost:3000/auth.html#/token
adminsip 压测管理服务AdminServer部署的IP地址,AdminServer必须单点部署。
nodeip 压测节点服务NodeServer部署的IP地址,建议和AdminServer分开部署。
AdminServer建议和tarsregistry部署在一起, NodeServer部署成功之后可在管理端扩容,部署的机器越多,
支持并行压测能力就越强。
例如,TarsWeb 部署地址为 192.168.123.128:3000,并要将 AdminServer 部署在节点
192.168.123.128,NodeServer 部署在节点 192.168.123.128,部署命令如下
cd TarsBenchmark
./install.sh 192.168.123.128:3000 abc123efg456ijk789 192.168.123.128 192.168.123.128
我的操作:
进入http://192.168.118.138:3000/auth.html#/token新增token并过去token
cd /home/muten/module/TARS/TarsFramework/TarsBenchmark
./install.sh 192.168.118.138:3000 750bdf29a7c5fa2f6f5152961eb804c312129c8d 192.168.118.138 192.168.118.138
4.服务压测
4.1 选中服务的【接口调试】【添加】【上传协议文件】
4.2 点击【压测】,点击【用例】,添加【用例】
4.3 点击【压测】,勾选【endpoint】,点击【开始压测】
我们勾选 endpoints 中要测试的节点,这里 HelloServer 只部署了一个节点,因此只显示了一个.
单 endpoint 连接数:即与前面勾选的每个 endpoint 服务建立的连接数,这里默认为 1,表示只建立一个连
接;
单 endpoint 速率:即每个 endpoint 的请求速率,默认为 100,即每秒请求 100 次,可以通过增大该速率增加请求压力;
压测时长:压测进行的时间,默认为20秒.
4.4 压测结果显示
5.用TB后台进行压力测试
tb是在本文3.3源码安装的时候得到的可执行程序
5.1 Http协议用例压测指南
本节会介绍如何tb启动压测,之后客户端持续发送Post请求到http服务器,服务端正确返回结果给tb客户端,压测完成后统计回包情况.