`

压测工具

 
阅读更多

压测工具:

工具说明使用特点
ab

模拟多个访问者同时对某一URL地址进行访问(nginx,tomcat,lighhttp)模拟多线程并发请求

ab -c 100 -n 1000 http://www.baidu.com/

做重复压力测试不错,但是每次只能测试一个链接

http_load

http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载,他可以以一个单一的进程运行,一般不会把客户机搞死,还可以测试https类的网站请求,程序非常小,不到100k

http_load -p 30(进程数) -s 60(总计的访问时间)  urllist.txt

测试结果中主要的指标是 fetches/secmsecs/connect 这个选项,即服务器每秒能够响应的查询次数

webbench

webbenchLinux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力

程序比较小,不到50k

webbench -c 并发数 -t 运行测试时间 URL

最多可以模拟3万,限制太大

Siege

一款开源的压力测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行

siege -c 200 -r 10 -f example.url

预置列表中请求随机的URL,siege可用于仿真用户请求负载

说明:1、以上的压测只能模拟流量压测,无法做到真实的流量压测

 

           2、不能实时模拟线上环境

线上引流方式的压测:

引流方式 实现方式 优点 缺点
nginx层的流量复制 通过lua脚本把请求复制给测试环境 安装部署简单 需要开发lua脚本,对资源有一定占用
基于业务代码层的引流

将业务代码的调用封装层请求对象,异步的写入缓存中,引流工具通过读取缓存

中的请求对象,想压测环境发起请求

扩展性好 需要开发流量复制工具,工作量不小
基于日志访问日志回放 线上系统记录访问日志,引流工具通过解析日志,向测试环境发起请求 离线方式对线上影响小 需要开发日志解析工具,切解析开销比较大
基于TCP/IP层的引流 目前已经开源工具tcpcopy 安装部署简单 有丢包率,只支持IP,针对长连接(上传文件),不是很支持

 

一、简介:

Tcpcopy是一个分布式在线压测工具,可以将线上流量拷贝到测试机器,实时模拟线上环境

Tcpcopy是由网易技术部2011年9月开源的一个项目

二、结构图:

 

三、工作流程:

1、一个访问到达线上前端机器

2、socket数据包在IP层被拷贝了一份给tcpcopy进程

3、tcpcopy修改包的目的及源地址,发给测试机

4、拷贝包到达测试机

5、目标测试机的nginx处理访问,并返回结果

6、返回结果在IP层被截获、丢弃,由intercept进程拷贝结果的ip header并返回

7、ip header被返回给前端机的tcpcopy进程(由于去除了body层,只有header数据,对负载压力小)

四、两种工作模式:

1、实时拷贝数据包

2、通过使用tcpdump等抓包生成的文件进行离线(offline)请求重放

五、两种模式的实现:

1、实时拷贝

./tcpcopy -x 80-172.16.***.52:80 -s 172.16.***.53 -d       #全流量复制
./tcpcopy -x 80-172.16.***.52:80 -s 172.16.***.53 -r 20 -d  #复制20%的流量
./tcpcopy -x 80-172.16.***.52:80 -s 172.16.***.53 -n 2 -d    #放大2倍流量
2、使用tcpdump录制pcap离线文件
 

tcpdump -i eth0 -w online.pcap tcp and port 80 

 

-i eth0:eth0为网卡,获取方式可在liunx系统下执行ifconfig查看所有的网卡,选取需要的那个。 -w online.pcap:为获取pcap文件进行回放,可设置路径,e.g. -w /home/user/test.pcap tcp and port 80:截获端口为80的tcp请求,也可添加udp请求,和更改服务端口80,e.g. tcp and port 16001
-s 0:默认的话,tcpdump只显示部分数据包,-s snaplen是控制包长度的,默认是68字节,-s 0 则为全部字节,在使用过程中,如果添加-s则回放时会出现错误。可不使用该参数

回放:

1 whereis tcpcopy,可在/usr/local/tcpcopy/sbin下发现tcpcopy命令 2 ./tcpcopy -x 16001-服务器ip:16001  -s 服务器ip -i /home/user/test.pcap 3 服务端抓包测试:tcpdump -n port 16001
 

 

分享到:
评论

相关推荐

    k6(jmeter)压测工具相关总结

    k6(jmeter)压测工具相关总结 k6压测工具是一个基于Go语言开发的高性能压测工具,相比于传统的JMeter压测工具,k6具有许多优点。下面将对k6压测工具的特点、优势、 Executor机制等进行详细介绍。 高性能 k6压测...

    Minecraft 压测工具.zip_mc服务器压测_weekz82_压测_压测mc_我的世界

    "Minecraft 压测工具"正是为了解决这个问题而设计的,它能够对各种中小型Minecraft服务器进行有效的压力测试,确保在高并发情况下服务器依然能够稳定运行。 压测,全称为压力测试,是一种用于评估系统在极限工作...

    我的世界假人压测工具V1.1.zip

    《我的世界假人压测工具V1.1》是一款针对知名沙盒游戏《我的世界》(Minecraft)设计的性能测试工具。它旨在帮助玩家、开发者以及服务器管理员评估游戏服务器在高并发情况下的稳定性和性能,确保游戏环境的流畅运行...

    我的世界压测工具,威力很大,有些防御力强的服务器可能失效

    我的世界压测工具,可以对服务器进行压测,不要用来故意弄别人的服务器

    SQL Server 压测工具 HammerDB-3.3

    SQL Server 压测工具 HammerDB-3.3

    windows超好用的压测工具sb下载

    压测工具

    消息中间件 RocketMQ 性能压测工具

    1 保证绝无 BUG,该工具封装自 RocketMQ 团队的 Benchmark,且经过本人测试。 2 功能强大,覆盖普通消息、定时(延时)消息、事务消息(提交、回滚)等基本场景的发送场景。集群订阅和广播订阅的消费场景。内含多种...

    jmeter压测工具上传

    【JMeter压测工具详解】 JMeter是一款强大的性能测试工具,由Apache软件基金会开发,主要用于对Web应用程序进行负载和压力测试。它支持多种协议,包括HTTP、HTTPS、FTP、JDBC、SMTP等,使得开发人员和测试人员可以...

    开源性能压测工具JMeter研究

    ### 开源性能压测工具JMeter研究 #### JMeter工具简介与重要性 Apache JMeter是一款由Apache组织开发的开源压力测试工具,主要用于对Web应用进行功能和性能测试。随着时间的发展,它的应用范围逐渐扩展到了非Web...

    apache-jmeter-5.4.3,接口压测工具jmeter

    Apache JMeter是一款强大的开源接口压测工具,由Apache组织开发并维护,主要应用于对软件进行压力测试,确保系统在高负载下仍能稳定运行。它最初设计用来测试Web应用,但随着时间的发展,JMeter的功能已经扩展到支持...

    我的世界服务器压测工具(Java编写)

    利用假人或者本地motd压测方法来使服务器负荷过大而瘫痪!

    线上引流压测工具

    线上引流压测工具是针对互联网应用进行性能测试的重要软件,其目标是模拟真实用户流量,检测系统在高并发情况下的稳定性和性能瓶颈。本工具相较于tcpcopy具有更易用和更灵活的特点,且基于Python原生开发,使得它在...

    dotnet-一个CSharp写的性能压测工具支持dotnet21

    标题 "dotnet-一个CSharp写的性能压测工具支持dotnet21" 暗示了这个项目是一个基于C#语言开发的性能测试工具,它专门针对.NET Framework 2.1版本进行了优化。C#是一种面向对象的编程语言,由微软开发,常用于构建...

    Linux fio性能压测工具

    Linux中的fio(Flexible I/O Tester)是一款强大的I/O性能测试工具,被广泛用于存储系统的压力测试、调优和故障诊断。它支持多种类型的I/O操作,如块设备、文件系统、网络文件系统(NFS)、内存等,并能模拟各种工作...

    我的世界机器熊工具我的世界高级压测工具.zip

    “我的世界机器熊工具我的世界高级压测工具.txt”这个文件很可能包含了关于这些工具的详细说明和教程。文件内容可能包括安装步骤、使用指南、常见问题解答等,是学习和应用这些工具的重要参考资料。在使用前,玩家...

    wrk.zip 压测工具wrk 下载

    **wrk工具详解** wrk是一款高性能的HTTP基准测试工具,由Liz Rice和Matt T. Proud共同开发,主要用于Web服务器的压力测试。它基于LuaJIT脚本语言,可以进行复杂的HTTP请求定制,并能生成详尽的性能报告。在本文中,...

    TCP协议压测工具源代码

    TCP协议压测工具主要是用来评估网络连接在高负载情况下的性能,包括连接速度、吞吐量、延迟以及并发处理能力等。MFC(Microsoft Foundation Classes)是微软提供的一套面向对象的C++库,常用于开发Windows桌面应用...

    wrk压测工具-wrk压测工具

    wrk压测工具

    TCP服务端(cmpp、sgip压测工具)

    在本工具中,TCP服务端被设计为可以接受任意TCP客户端的连接,这对于测试和调试TCP通信系统非常有用。它能接收客户端发送的数据,并以十六进制的形式展示,帮助开发者直观地理解数据包的内容和格式。 CMPP(China ...

    数据库经典压测工具sysbench双版本 sysbench0.5支持oracle sysbench1.1 支持达梦 附详细文档

    Sysbench是一个广泛使用的开源工具,适用于多种数据库系统,包括Oracle和达梦(DAMENG)。本篇文章将深入探讨sysbench的两个版本——sysbench0.5和sysbench1.1,并详细阐述它们对Oracle及达梦数据库的支持。 首先,...

Global site tag (gtag.js) - Google Analytics