这篇文章主要介绍了Tiobench,Orion,Lmbench,netperf这4种压力测试工具的安装及简单使用,只是一个入门级的教程,大牛请绕过。
1. Tiobench 基于文件系统的IO压力测试
下载:
http://sourceforge.net/projects/tiobench/files/tiobench/0.3.3/tiobench-0.3.3.tar.gz/download
解压缩: tar xzvf tiobench-0.3.3.tar.gz
再进入到tiobench-0.3.3目录中
Make
Make install
IO测试(对文件系统读写测试工具)可以使用以下命令取得帮助。
./tiotest -h
使用预定义或者可配置测试可以使用可以命令获取帮助。
./tiobench.pl –help
执行可以如下:tiobench.pl其实只是包装了一层,里面调用了tiotest
./tiobench.pl –block 4 –random 10000 –numruns 5 –threads 10 –size 2048
上面这句话的意思是:
1个块大小为4字节 ,10个线程,执行10000个随机IO,写2048MB数据,共执行5次。
测试完之后可以看到产生的测试报告如下:
Unit information================
File size = megabytes
Blk Size = bytes
Rate = megabytes per second
CPU% = percentage of CPU used during the test
Latency = milliseconds
Lat% = percent of requests that took longer than X seconds
CPU Eff = Rate divided by CPU% – throughput per cpu load
Sequential Reads
2.6.18-164.el5 1024 4 10 4.94 8210.% 0.004 7.27 0.00000 0.00000 0
Random Reads
2.6.18-164.el5 1024 4 10 4.64 7483.% 0.004 0.04 0.00000 0.00000 0
Sequential Writes
2.6.18-164.el5 1024 4 10 2.21 9521.% 0.015 11.56 0.00000 0.00000 0
Random Writes
2.6.18-164.el5 1024 4 10 0.02 98.51% 0.012 0.06 0.00000 0.00000 0
想知道各行分别代表什么含义,请执行:./tiosum.pl可以得到各行的TIILE。感觉这个地方很山寨。
组装一下就是:
Unit information================
File size = megabytes
Blk Size = bytes
Rate = megabytes per second
CPU% = percentage of CPU used during the test
Latency = milliseconds
Lat% = percent of requests that took longer than X seconds
CPU Eff = Rate divided by CPU% – throughput per cpu load
Sequential Reads
File Blk Num Avg Maximum Lat% Lat% CPU
Kernel Size Size Thr Rate (CPU%) Latency Latency >2s >10s Eff
—————————- —— —– — ————————————————————
2.6.18-164.el5 1024 4 10 4.94 8210.% 0.004 7.27 0.00000 0.00000 0
Random Reads
File Blk Num Avg Maximum Lat% Lat% CPU
Kernel Size Size Thr Rate (CPU%) Latency Latency >2s >10s Eff
—————————- —— —– — ————————————————————
2.6.18-164.el5 1024 4 10 4.64 7483.% 0.004 0.04 0.00000 0.00000 0
Sequential Writes
File Blk Num Avg Maximum Lat% Lat% CPU
Kernel Size Size Thr Rate (CPU%) Latency Latency >2s >10s Eff
—————————- —— —– — ————————————————————
2.6.18-164.el5 1024 4 10 2.21 9521.% 0.015 11.56 0.00000 0.00000 0
Random Writes
File Blk Num Avg Maximum Lat% Lat% CPU
Kernel Size Size Thr Rate (CPU%) Latency Latency >2s >10s Eff
—————————- —— —– — ————————————————————
2.6.18-164.el5 1024 4 10 0.02 98.51% 0.012 0.06 0.00000 0.00000 0
发现一个读IO只要0.004毫秒,非常快,这是因为IO是基于文件系统cache的,其实测试的是内存,并非文件系统。所以,可以使用下面一个工具来测试IO。
2. 使用Orion做基于裸设备的IO压力测试
下载http://www.oracle.com/technetwork/topics/index-089595.html,需要一个OTN的免费帐号。
下载安装之后,可以以下命令获取帮助:
./orion_linux_x86-64 –help
为了避免文件系统cache,我们可以将需要测试的目录先进行umount
如:我要测试的目录为/data/对应的盘为/dev/sda8(映射关系保存在/etc/fstab中)
先执行:
umount /data
然后执行命令,命令执行完成后,再执行mount /data即可重新mount回来。
mount /data
测试如下:
2.1数据库OLTP类型,假定IO类型全部是8K随机操作,压力类型,自动加压,从小到大,一直到存储压力极限。读写比各为50%
2.2.1 测试8KB的块,这个是数据库块大小
创建一个文件名为zhoucang8k.lun的文件,内容为/dev/sda8
./orion_linux_x86-64 -run advanced -testname zhoucang8k -size_small 8 -size_large 8 -type rand -write 50 &
这里能够得到一些报告如下:
文件1:zhoucang8k_20110520_1757_lat.csv表示每个IO的延时,1,2,3,4,5分别代表并发数
Large/Small 1 2 3 4 5
0 3.55 4.18 4.77 5.35 5.94
1
2
文件2:zhoucang8k_20110520_1757_iops.csvIOPS的能力,1,2,3,4,5分别代表并发数。
Large/Small 1 2 3 4 5
0 281 478 628 747 842
1
2
文件3:zhoucang8k_20110520_1757_mbps.csv IO吞吐量,单位:MB/每秒
Large/Small 0 1 2 3 4 5
1 2.14
2 3.72
还有两个文件trace文件内容较长,这里不贴了,另一个summary文件如下:
文件4:zhoucang8k_20110520_1757_summary.txt
ORION VERSION 11.1.0.7.0Commandline:
-run advanced -testname zhoucang8k -size_small 8 -size_large 8 -type rand -write 50
This maps to this test:
Test: zhoucang8k
Small IO size: 8 KB
Large IO size: 8 KB
IO Types: Small Random IOs, Large Random IOs
Simulated Array Type: CONCAT
Write: 50%
Cache Size: Not Entered
Duration for each Data Point: 60 seconds
Small Columns:, 0
Large Columns:, 0, 1, 2
Total Data Points: 8
Name: /dev/sda8 Size: 1053115467264
1 FILEs found.
Maximum Large MBPS=3.72 @ Small=0 and Large=2
Maximum Small IOPS=842 @ Small=5 and Large=0
Minimum Small Latency=3.55 @ Small=1 and Large=0
2.2.2 测试128KB的随机IO,这个是db_file_multiblock_read_count的默认值。
创建一个文件名为zhoucang128k.lun的文件,内容为/dev/sda8
./orion_linux_x86-64 -run advanced -testname zhoucang128k -size_small 128 -size_large 128 -type rand -write 50 &
结果(见附件):
Maximum Large MBPS=29.11 @ Small=0 and Large=2
Maximum Small IOPS=311 @ Small=5 and Large=0
Minimum Small Latency=5.93 @ Small=1 and Large=0
2.2.3 测试1MB的随机IO,这个是操作系统上能够支持的最大IO。
创建一个文件名为zhoucang1024k.lun的文件,内容为/dev/sda8
./orion_linux_x86-64 -run advanced -testname zhoucang1024k -size_small 1024-size_large 1024 –write 50 -type rand &
结果(见附件):
Maximum Large MBPS=109.76 @ Small=0 and Large=2
Maximum Small IOPS=135 @ Small=5 and Large=0
Minimum Small Latency=11.49 @ Small=1 and Large=0
2.2 IO吞吐量的测试,跟数据库归档等相关。
2.2.1 数据库吞吐量测试,假定IO全部是1M的序列性IO
./orion_linux_x86-64 -run advanced -testname zhoucang1m -size_small 1024 -size_large 1024 –write 50 -type seq &
IOPS:
Large/Small 1 2 3 4 5
0 83 110 123 129 133
Lat:
Large/Small 1 2 3 4 5
0 11.92 18.12 24.33 30.86 37.56
整完之后,可能需要重新创建文件系统。因为/dev/sda8的label头信息被覆盖了。
/etc/fstab内容如下
LABEL=/data /data ext3 defaults 1 2
执行以下命令创建文件系统。
mkfs -t ext3 /dev/sda8
/etc/fstab中加入:
/dev/sda8 /data ext3 defaults 1 2
mount -a
3 Lmbench 内存测试:
下载一个Lmbench:
www.bitmover.com/lmbench
http://www.bitmover.com/bitkeeper(里面的链接,打不开)
tar xzvf lmbench-3.0-a9.tgz
lmbench-3.0-a9
make results
输入1000,大概1G的内存测试。(这个值越大,测试结果越准确,同时,值大,测试的时间也会稍稍有点长)
其它参数可以自选,这里我选择了全部默认(调带大小等参数),漫长的执行过程。。。。
测试完毕执行make see可得到以下四个文件,
在result目录下:percent.errs percent.out summary.errs summary.out
percent.errs和summary.errs
其它:具体如何使用这个工具呢?发现这个工具BIN目录下有非常多的文件,功能很强大,具体可以参看这个链表上面有详细的介绍:
http://www.bitmover.com/lmbench/man_lmbench.html
详尽的测试结果见附件:
4 netperf针对网络做压力测试
这个工具是由HP公司开发的,测试网络栈的一个工具,详细的使用文档可以参看附件。
从官方网下载一个netperf,登录:
ftp://ftp.netperf.org/netperf/
拷贝文件:netperf-2.4.5.tar.gz
执行
Tar xzvf netperf-2.4.5.tar.gz
cd netperf-4.0.0rc2
Mkdir bin
./configure –prefix /root/zhoucang/netperf-2.4.5/bin
检测安装平台的目标特征的,能够直接linux下的makefile,
再执行make和make install
安装完成之后,进入安装目录的 bin目录。
执行以下命令可以查看帮助:
./netperf –help
4.1批量(bulk)网络流量的性能
批量数据传输典型的例子有ftp和其它类似的网络应用(即一次传输整个文件)。根据使用传输协议的不同,批量数据传输又分为TCP批量传输和UDP批量传输。
4.1.1 测试TCP_STREAM传输:
Netperf缺省情况下进行TCP批量传输,即-t TCP_STREAM。测试过程中,netperf向netserver发送批量的TCP数据分组,以确定数据传输过程中的吞吐量:
测试结果如下
[root@tstpay1 bin]# ./netperf -H 10.253.34.8 -l 60TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.253.34.8 (10.253.34.8) port 0 AF_INET
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 60.03 949.29
从netperf的结果输出中,我们可以知道以下的一些信息:
1) 远端系统(即server)使用大小为87380字节的socket接收缓冲
2) 本地系统(即client)使用大小为16384字节的socket发送缓冲
3) 向远端系统发送的测试分组大小为16384字节
4) 测试经历的时间为60.03秒
5) 吞吐量的测试结果为949.29Mbits/秒
4.1.2 UDP_STREAM的测试
UDP_STREAM用来测试进行UDP批量传输时的网络性能。需要特别注意的是,此时测试分组的大小不得大于socket的发送与接收缓冲大小,否则netperf会报出错提示:
执行:./netperf -t UDP_STREAM -H 10.253.34.8 -l 60
执行结果如下:
[root@tstpay1 bin]# ./netperf -t UDP_STREAM -H 10.253.34.8 -l 60UDP UNIDIRECTIONAL SEND TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.253.34.8 (10.253.34.8) port 0 AF_INET
Socket Message Elapsed Messages
Size Size Time Okay Errors Throughput
bytes bytes secs # # 10^6bits/sec
262144 65507 60.00 110099 0 961.62
129024 60.00 110098 961.61
UDP_STREAM方式的结果中有两行测试数据,第一行显示的是本地系统的发送统计,这里的吞吐量表示netperf向本地socket发送分组的能力。但是,我们知道,UDP是不可靠的传输协议,发送出去的分组数量不一定等于接收到的分组数量。
第二行显示的就是远端系统接收的情况,由于client与server直接连接在一起,而且网络中没有其它的流量,所以本地系统发送过去的分组几乎都被远端系统正确的接收了,远端系统的吞吐量也几乎等于本地系统的发送吞吐量。但是,在实际环境中,一般远端系统的socket缓冲大小不同于本地系统的socket缓冲区大小,而且由于UDP协议的不可靠性,远端系统的接收吞吐量要远远小于发送出去的吞吐量。
4.2 请求/应答(request/response)网络流量的性能
另一类常见的网络流量类型是应用在client/server结构中的request/response模式。在每次交易(transaction)中,client向server发出小的查询分组,server接收到请求,经处理后返回大的结果数据。
4.2.1 TCP_RR
TCP_RR方式的测试对象是多次TCP request和response的交易过程,但是它们发生在同一个TCP连接中,这种模式常常出现在数据库应用中。数据库的client程序与server程序建立一个TCP连接以后,就在这个连接中传送数据库的多次交易过程。
[root@tstpay1 bin]# ./netperf -t TCP_RR -H 10.253.34.8TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.253.34.8 (10.253.34.8) port 0 AF_INET
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
16384 87380 1 1 10.00 11294.81
Netperf输出的结果也是由两行组成。第一行显示本地系统的情况,第二行显示的是远端系统的信息。平均的交易率(transaction rate)为11294.81次/秒。注意到这里每次交易中的request和response分组的大小都为1个字节,不具有很大的实际意义。用户可以通过测试相关的参数来改变request和response分组的大小,TCP_RR方式下的参数如下表所示:
参数 说明
-s size 设置本地系统的socket发送与接收缓冲大小
-S size 设置远端系统的socket发送与接收缓冲大小
-r req,resp 设置request和reponse分组的大小
-D 对本地与远端系统的socket设置TCP_NODELAY选项
通过使用-r参数,我们可以进行更有实际意义的测试:
#./netperf -t TCP_RR -H 10.253.34.8 — -r 32,1024TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.253.34.8 (10.253.34.8) port 0 AF_INET
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
16384 87380 32 1024 10.00 8955.26
16384 87380
从结果中可以看出,由于request/reponse分组的大小增加了,导致了交易率明显的下降。注:相对于实际的系统,这里交易率的计算没有充分考虑到交易过程中的应用程序处理时延,因此结果往往会高于实际情况。
4.2.2 TCP_CRR
与TCP_RR不同,TCP_CRR为每次交易建立一个新的TCP连接。最典型的应用就是HTTP,每次HTTP交易是在一条单独的TCP连接中进行的。因此,由于需要不停地建立新的TCP连接,并且在交易结束后拆除TCP连接,交易率一定会受到很大的影响。
[root@tstpay1 bin]# ./netperf -t TCP_CRR -H 10.253.34.8TCP Connect/Request/Response TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.253.34.8 (10.253.34.8) port 0 AF_INET
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
16384 87380 1 1 10.00 4607.63
16384 87380
即使是使用一个字节的request/response分组,交易率也明显的降低了,只有4607.63次/秒。TCP_CRR使用与TCP_RR相同的局部参数。
4.2.3 UDP_RR
UDP_RR方式使用UDP分组进行request/response的交易过程。由于没有TCP连接所带来的负担,所以我们推测交易率一定会有相应的提升。
[root@tstpay1 bin]# ./netperf -t UDP_RR -H 10.253.34.8UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.253.34.8 (10.253.34.8) port 0 AF_INET
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
262144 262144 1 1 10.00 11367.45
129024 129024
结果证实了我们的推测,交易率为11367.45次/秒,高过TCP_RR的数值。不过,如果出现了相反的结果,即交易率反而降低了,也不需要担心,因为这说明了在网络中,路由器或其它的网络设备对UDP采用了与TCP不同的缓冲区空间和处理技术。
分享到:
相关推荐
Orion-Rhapsody_US是美国Orion公司推出的一款医疗专业化信息平台,它通过Rhapsody Integration Engine实现医疗IT系统之间的互操作性,无论技术或标准如何,都能够以最快的速度和最简便的方式进行。Rhapsody ...
《Orion 10.2:Oracle的跨平台存储测试利器》 Oracle Orion是一款由全球知名数据库厂商Oracle推出的高效存储测试工具,专为评估和优化存储系统性能而设计。其最新版本Orion 10.2,支持Windows和Linux两大操作系统,...
新西兰Orion Health软件医院信息集成平台解决方案v2.0
七步orion企业主题模板是七步分享的,咱一起来看看七步orion企业主题模板,从七步orion企业主题模板的演示来看,咱发现七步orion企业主题模板也合适个人工作室除了用作企业公司外,先看七步orion企业主题模板的首页...
**如何安装SolarWinds Orion** SolarWinds Orion是一款强大的网络性能监控工具,它提供了一整套功能,用于监测网络设备、服务器、应用程序和服务的性能。本文将详细介绍如何安装和配置SolarWinds Orion,以帮助您...
标题中的“Orion”是指Oracle公司提供的一款专门用于测试I/O性能的工具。Orion的主要目的是帮助用户评估和比较不同存储设备在Oracle数据库工作负载下的性能表现。它能够模拟多种类型的I/O操作,以准确地反映数据库...
Orion作为一个高效的数据交换工具,被广泛应用于医疗健康信息领域,特别是HL7标准的支持,使其成为处理复杂数据交互的理想选择。以下是从标题、描述、标签以及部分内容中提炼出的关于如何使用Orion进行数据交换的...
Orion2_CDM.pdf Orion2 CDM 系统操作指南是汽车电子行业中应用广泛的测试系统,主要用于汽车电子产品的测试和认证。本文档将对 Orion2 CDM 系统的主要组件、操作指南和功能进行详细介绍。 一、测试面板 测试面板...
《Orion.NTA.v3.5SP2:深入了解SolarWinds网络流量分析工具》 Orion.NTA.v3.5SP2是SolarWinds公司推出的一款强大的网络流量分析(NTA)工具,专为IT专业人士设计,用于监控、诊断和优化网络性能。此版本为3.5 ...
《SolarWinds Orion 操作手册集》是一份全面详尽的指南,专为那些希望深入了解和熟练使用 SolarWinds Orion 平台的IT专业人士准备。SolarWinds Orion 是一款强大的网络性能监控工具,它能够帮助管理员实时监测、诊断...
orion10.2 orcale 测试工具 orion10.2 linux下载
orion-ssh2-214.jar 使用ssh功能的
### Orion网络监控工具指南 #### 一、Orion网络监控工具简介 Orion网络监控工具是一款功能强大的网络管理软件,能够帮助用户实时监控网络设备的状态,包括但不限于路由器、交换机、服务器等。通过该工具,管理员...
Orion插件是一款专为Eclipse开发环境设计的强大工具,其主要目的是为了简化JavaEE应用程序的部署和管理。Orion插件将应用服务器的功能无缝集成到Eclipse IDE中,为开发者提供了一个高效、便捷的工作环境。 Orion...
标题中的"orion_gtk3_theme"指的是一个基于GTK3的Orion主题,这通常是一个图形用户界面(GUI)的主题包,用于改变Linux系统中应用程序的外观和感觉。GTK3是一个广泛使用的开源GUI构建工具包,支持多种操作系统,包括...
### Orion集成平台 - 医院信息解决方案及案例说明 #### 1. 引言 随着信息技术在医疗领域的广泛应用,医院信息系统面临着诸多挑战。为了更好地整合医疗资源、提高医疗服务质量和效率,Orion Health 提出了集成平台...
orion_linux测试工具。 orion,一款由Oracle公司提供,专门用于模拟数据库运行机制来测试存储的优秀IO存储测试软件,可以在不运行oracle数据库的情况下,仿真OLTP随机操作(测试IOPS)或者是OLAP连续性操作(测试...
标题中的“orion--oracle存储模拟测试软件”指的是Orion,这是一个专用于Oracle数据库存储性能测试的工具。在Oracle数据库的环境中,存储系统的性能对于数据库的整体运行效率至关重要。Orion能够模拟真实的Oracle...
### Solarwinds Orion软件安装及配置详解 #### 一、SQL Server 2000数据库安装 在安装Solarwinds Orion软件前,首先需确保已安装SQL Server 2000数据库,作为软件运行的数据存储基础。安装流程包括运行安装程序、...
【标题】"eclipse-orion-I20140311-1305-win32.win32.x86" 指的是Eclipse Orion的一个特定版本,该版本适用于32位Windows操作系统。Eclipse Orion是一款开源的、基于Web的集成开发环境(IDE),由Eclipse基金会开发...