标签:响应时间 执行时间 tcpcopy google 测试报告 免费 调度 发送请求 性能分析
Grinder是一个开源的Java负载测试框架,它通过很多负载注射器来为分布式测试提供了便利。支持用于执行测试脚本的Jython脚本引擎HTTP测试可通过HTTP代理进行管理。
Grinder的特点:
PTP致力于将性能测试过程自动化的平台。
PTP平台的特点:
Apache JMeter是Apache组织开发的纯Java的压力测试工具。它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP服务器等等。
JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。
Jmeter的几个特点:
Gatling是一款基于Scala 开发的高性能服务器性能测试工具,它主要用于对服务器进行负载等测试,并分析和测量服务器的各种性能指标。
Gatling主要用于测量基于HTTP的服务器,比如Web应用程序,RESTful服务等,除此之外它拥有以下特点:
Gatling适用的场景包括:
Garrosh是一个HTTP异步并发压测工具
其开发初衷是摆脱同步并发测试的局限,模拟真实世界的用户并发访问场景,还能以一种源源不断发送请求的能力适应某些过载测试场景的需求
主要特性包括:
wrk 是一款采用异步并发模型的HTTP基准测试工具:
VisualVM 是一款免费的性能分析工具。它通过 jvmstat、JMX、SA(Serviceability Agent)以及 Attach API 等多种方式从程序运行时获得实时数据,从而进行动态的性能分析。
同时,它能自动选择更快更轻量级的技术尽量减少性能分析对应用程序造成的影响,提高性能分析的精度。VisualVM主要提供以下的功能:
BTrace是一款动态的、安全的java运行时诊断工具。
它允许用户使用java语言编写trace代码,并将这些代码动态注入到JVM的指定位置。
通过这种字节码注入方式,用户可以在不重启程序的情况下,实时获取并统计程序的运行情况,如方法调用耗时、方法入参大小等。
使用介绍:http://doc.hz.netease.com/download/attachments/34179586/JAVA%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90%E5%88%A9%E5%99%A8%E4%B9%8BBTrace.pptx
Byteman是一个简化了Java程序跟踪和测试的工具。 Byteman允许你插入额外的Java代码到您的应用程序中,不管是在JVM启动时或还是已经开始运行加载。
被注入的代码被允许访问任何数据,并调用任何应用程序的方法,包括在那里他们都是私有的。
你几乎可以在任何地方你想要注入代码并没有需要准备的原始源代码事先也没有,你必须重新编译,重新包装或重新部署应用程序。
事实上,你可以删除注入的代码并重新安装不同的代码,而应用程序继续执行。
工具使用:http://doc.hz.netease.com/pages/worddav/preview.action?pageId=38673717&fileName=byteman%E7%AE%80%E4%BB%8B.pptx
JProfiler 是一个商业授权的Java剖析工具,由EJ技术有限公司,针对的Java EE和Java SE应用程序开发的。
它把CPU、执行绪和内存的剖析组合在一个强大的应用中。JProfiler可提供许多IDE整合和应用服务器整合用途。
Netperf是一种基于C/S模式的网络性能的测量工具,主要针对基于TCP 或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,
即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是两个系统之间发送和接受数据的速度和效率。
Netper主要提供以下几种模式来对网络行为进行模拟:
FIO是一个用于对磁盘IO进行基准或压力测试的工具,支持19种不同类型的IO引擎,在测试行为上,支持设置IO优先级,多线程测试等等特性。
FIO既可针对块设备也可以针对文件进行测试。测试呈现了详尽的延迟分布情况。
FIO具备以下特点:
SPEC CPU是SPEC(标准性能评测组织)开发的专门用于评价CPU性能的一套基准测试程序,主要应用于桌面型和服务器型CPU的性能评价。
其目的是比较不同类型CPU的整点计算和浮点运算性能。SPEC CPU对CPU的测试结果在CPU性能评价领域具有很高的权威性。
SPEC CPU具备以下特点:
TcpCopy是一种请求复制(所有基于tcp的packets)工具,可以把在线请求导入到测试系统中去。已经广泛应用于国内各大互联网公司。TcpCopy七大功能如下:
1.分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),也可以提前发现一些bug
2.普通上线测试,可以发现新系统是否稳定,提前发现上线过程中会出现的诸多问题,让开发者有信心上线
3.对比试验,同样请求,针对不同或不同版本程序,可以做性能对比等试验
4.流量放大功能
5.利用TCPCopy转发传统压力测试工具发出的请求,可以增加网络延迟,使其压力测试更加真实
6.热备份
7.实战演习
特点:
1.可实时,也可离线
2.效果真实
3.低负载,不影响在线
4.操作简单
5.分布式
6.零成本
tcpcopy能够解决线下模拟测试遇到的业务覆盖不全,测试脚本和数据准备比较困难的问题,同时因为是线上的请求,真实度更高。非常适合读请求比例非常高的业务场景。使用tcpcopy进行引流测试会
面临相邻请求有业务联系,导致引流可能失败,以及https请求无法复制,写请求无法复制,以及非幂等请求无法复制的问题。实际运用要考虑被测系统以及业务来设定有效的引流方案。
使用介绍:http://doc.hz.netease.com/display/qa/Tcpcopy
Perf 是用来进行软件性能分析的工具。
通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计。
它不但可以分析指定应用程序的性能问题 (per thread),也可以用来分析内核的性能问题,当然也可以同时分析应用代码和内核,从而全面理解应用程序中的性能瓶颈。
The userspace perf command present a simple to use interface with commands like:
Valgrind是一个GPL的软件,用于Linux(For x86, amd64 and ppc32)程序的内存调试和代码剖析。
你可以在它的环境中运行你的程序来监视内存的使用情况,比如C 语言中的malloc和free或者 C++中的new和 delete。
使用Valgrind的工具包,你可以自动的检测许多内存管理和线程的bug,避免花费太多的时间在bug寻找上,使得你的程序更加稳固。
valgrind工具集支持:
blktrace是一个针对Linux内核中块设备I/O层的跟踪工具,用来收集磁盘IO信息中当IO进行到块设备层(block层,所以叫blk trace)时的详细信息(如IO请求提交,入队,合并,完成等等一些列的信息),是由Linux内核块设备层的维护者开发的,目前已经集成到内核 2.6.17及其之后的内核版本中。通过使用这个工具,使用者可以获取I/O请求队列的各种详细的情况,包括进行读写的进程名称、进程号、执行时间、读写 的物理块号、块大小等等,是一个Linux下分析I/O相关内容的很好的工具。
使用说明:http://duch.mimuw.edu.pl/~lichota/09-10/Optymalizacja-open-source/Materialy/10%20-%20Dysk/gelato_ICE06apr_blktrace_brunelle_hp.pdf
SystemTap是我目前所知的最强大的内核调试工具,有些家伙甚至说它无所不能:)
SystemTap 是监控和跟踪运行中的Linux 内核的操作的动态方法。这句话的关键词是动态,因为SystemTap 没有使用工具构建一个特殊的内核,而是允许您在运行时动态地安装该工具。
标签:响应时间 执行时间 tcpcopy google 测试报告 免费 调度 发送请求 性能分析
原文地址:http://www.cnblogs.com/WangCaiYun/p/7650123.html