TDengine压力测试之RESTful

这篇具有很好参考价值的文章主要介绍了TDengine压力测试之RESTful。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

生产系统上线前都会进行压力测试,能承受多少并发,在大并发下性能如何,都是上线前必须要了解的。
TDengine 作为时序数据库(Time Series Database),提供了 RESTFul 接口,可以使用 HTTP 协议进行操作。这个接口在生产环境中性能如何,是否能够满足高并发要求,都需要压测后才能知道。
在此介绍 2 款实用的压测工具 ab 和 JMeter,这两者都是 Apache 开发的。ab 只能提供汇总后的结果,JMeter 可以提供每个请求的相应时间。因此 JMeter 更加复杂,占用资源更多。

1.ab

ab 是 Apachebench 命令的缩写,ab 是 Apache 自带的压力测试工具。ab 可以对不同类型服务器进行压力测试。比如nginx、tomcat、IIS等。

ab 能够创建多个并发线程,占用的资源非常少。

官网:https://httpd.apache.org/docs/2.4/programs/ab.html

1.1.安装

ab 是 httpd 工具包里面的一个小工具,需要先安装 http 工具包。

#CentOS
yum install httpd-tools

#Ubuntu
apt install apache2-utils

1.2.测试

1.2.1.参数解读
-n requests
#执行的请求个数。 

-c concurrency
#一次产生的请求个数。

-H custom-header
#对请求附加额外的头信息。 

-p POST-file
#需要POST的数据的文件.

-k 
#启用HTTP KeepAlive功能,在一个HTTP会话中执行多个请求。

1.2.2.测试命令

并发10个线程,共发送10000个请求,采用Keepalive方式。

#query.sql
select last_row(*) from db01.meters ;
ab -n 10000 -c 10 -k -H "Authorization: Basic cm9vdDp0YW9zZGF0YQ==" -p query.sql  http://192.168.0.11:6041/rest/sql
1.2.3.测试结果:
Concurrency Level:      10
Time taken for tests:   46.756 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      3030000 bytes
Total body sent:        2140000
HTML transferred:       2000000 bytes
Requests per second:    213.88 [#/sec] (mean)
Time per request:       46.756 [ms] (mean)
Time per request:       4.676 [ms] (mean, across all concurrent requests)
Transfer rate:          63.29 [Kbytes/sec] received
                        44.70 kb/s sent
                        107.98 kb/s total

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0  14.2      0    1002
Processing:    10   46  12.8     45     198
Waiting:        9   41  11.9     40     175
Total:         10   47  19.0     45    1048

Percentage of the requests served within a certain time (ms)
  50%     45
  66%     50
  75%     53
  80%     55
  90%     61
  95%     67
  98%     77
  99%     88
 100%   1048 (longest request)

2.JMeter

Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。

JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。

官网:https://jmeter.apache.org/usermanual/index.html

2.1.安装

JMete 是基于 Java 开发的,使用前需求先安装 Java。

下载地址:https://jmeter.apache.org/download_jmeter.cgi

解压缩所安装包,执行运行可执行文件即可

tar xvzf apache-jmeter-5.4.3.tar.gz
cd apache-jmeter-5.4.3
sh jmeter.sh 

2.2.测试

2.2.1.创建测试任务

按照以下顺序创建一个测试任务

├── 1 测试计划
    ├── 2 线程组
    │   └── 7 HTTP请求
    ├── 3 HTTP信息头管理
    ├── 4 汇总报告
    ├── 5 聚合报告
    └── 6 用表格查看结果

TDengine压力测试之RESTful

2.2.2.参数设置
线程组

线程数:10
Ramp-Up时间(秒):1
循环测试:1000
TDengine压力测试之RESTful

HTTP信息头管理器

名称:Authorization
值:Basic cm9vdDp0YW9zZGF0YQ==
TDengine压力测试之RESTful

HTTP请求

服务器或IP:192.168.0.11
端口:6041
HTTP请求:POST
路径:/rest/sql
消息体数据:select last_row(*) from db01.meters;

TDengine压力测试之RESTful

2.2.3.测试结果

点击工具栏运行按钮即可开始测试
TDengine压力测试之RESTful
测试结果可在汇总报告和聚合报告中查看。
TDengine压力测试之RESTful
TDengine压力测试之RESTful

2.3 注意

执行 jemeter.sh 后就会提示

================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
   jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
   Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================

真实的生产环境不要使用 GUI 进行测试,GUI 只是用来调试测试文件的。
如果要进行压力测试,需要使用命令行模式(CLI Mode)。

TDengine压力测试之RESTful

3.ab 与 JMeter 对比

引用 jmeter和ab的对比 的结论文章来源地址https://www.toymoban.com/news/detail-471004.html

  • JMeter是一次完整的请求和返回;ab 只是发出去请求,并不对返回做处理。
  • JMeter可以提供更加详细的统计结果数据;ab 的结果为用数学方式统计平均值。
  • JMeter支持可变参数和 CSV 数据集的输入,能设定更加负责的测试样例;ab 不需要写配置文件。
  • JMeter不支持精确时间的压测;ab 支持。
  • JMeter GUI 比较重,并且统计了很多结果数据,比 ab 耗时耗费资源多;ab 属于轻量级。

到了这里,关于TDengine压力测试之RESTful的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用jmeter进行系统压力测试?

    1.1 常用组件以及参数介绍 1.1.1 基本软件 需准备一下工具 压测工具: jmeter-2.13 服务器性能监控:jmeter插件 ServerAgent-2.2.1 压测时,直接使用jmeter模拟终端发起交易,jmeter可统计交易并发;ServerAgent在服务器启动agent,开放4444端口,jmeter通过agent获取相关的服务器性能数据,包括

    2024年02月07日
    浏览(40)
  • 短信压力测试系统,支持自定义接口

    短信压力测试系统,支持自定义接口 支持卡密充值,短信压力测试系统,解决一切骚扰电话,教程在压缩包里面 可多个服务器挂脚本分担压力,套了cdn导致无法正常执行脚本可以尝试添加白名单 这边建议使用MySQL方式 同服务器下直接配置数据库信息即可,其他配置详见源码

    2024年02月12日
    浏览(47)
  • 基于LabVIEW的压力传感器测试系统

    现在各类压力传感器已广泛应用于各种工业自控环境,对压力传感器的研究 及应用,既可以体现一个国家的科技发展水平,又可以提升国家的综合国力,还 可以在丰富、方便和智能化人们的生活方面做出重要的贡献。而针对不同仪器组 成计算机测试辅助系统也显得颇为重要

    2024年01月20日
    浏览(43)
  • ubuntu系统CPU压力测试-有图有真相

    为了测试CPU在ubuntu下满负荷运行机器散热情况,而进行的简单实验。 确认物理机是否联网,确认资源OK #sudo  update   1.cpu性能测试-安装软件 #sudo apt install -y stress psensor htop stress 介绍 可以查看这个大神的作品 链接:Linux性能优化(一)——stress压力测试工具_stress工具_天山老

    2024年02月09日
    浏览(39)
  • stress-ng工具压力测试linux系统

    stress-ng兼容stress, 支持产生各种复杂的压力。 选项 含义 -t, --timeout 指定运行多少秒停止 –backoff 指定等待N微妙后开始运行 -c, --cpu 指定产生N个处理sqrt()函数的CPU进程,也就是每个进程不停计算随机数的平方根 -i, --io 指定产生N个处理sync()函数的磁盘I/O进程,sync()用于将内存上

    2024年01月17日
    浏览(38)
  • 操作教程|使用MeterSphere对恒生UFX系统进行压力测试

    恒生UFX(United Finance Exchange,统一金融交换)系统(以下简称为“UFX系统”),是一款帮助证券公司统一管理外部接入客户的系统,该系统整体上覆盖了期货、证券、基金、银行、信托、海外业务等各类交易接口,适用于各类金融交易业务的对接。第三方系统通过使用T2SDK(

    2024年03月13日
    浏览(32)
  • linux系统nginx工具接口压力测试工具和关联php页面

    ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。 工具下载与使用 参数选项 内容解释 ab性能指标 吞吐率(Requests per second) 服务器并发处理能力的量化描述,单位是reqs/s,指

    2024年01月25日
    浏览(52)
  • 2023最新网站服务器CC压力测试系统源码 前后端全开源

    CC 攻击是一种 DDoS(分布式拒绝服务),它似乎比其他 DDoS 攻击更具技术性。在这种攻击中,看不到假IP,看不到特别大的异常流量,但会导致服务器无法正常连接。今天介绍的就是一款CC压力测试系统 CC攻击的原理是攻击者控制部分主机不断向对方服务器发送大量数据包,导

    2024年02月16日
    浏览(37)
  • 在FISCO BCOS区块链系统中使用Java SDK进行压力测试

    Java SDK Demo是FISCO BCOS团队基于Java SDK的基准测试集合,能够对FISCO BCOS节点进行压力测试。Java SDK Demo提供有合约编译功能,能够将Solidity合约文件转换成Java合约文件,此外还提供了针对转账合约、CRUD合约以及AMOP功能的压力测试示例程序 Java SDK Demo中的测试程序能够在部署有JD

    2024年01月17日
    浏览(117)
  • 【业务功能篇86】微服务-springcloud-系统性能压力测试-jmeter-性能优化-JVM参数调优

      压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率状况,

    2024年02月10日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包