0


性能测试工具

1 整机性能测试方法

测试使用UnixBench工具

UnixBench是linux、unix测试系统基准性能的经典工具,UNIXBENCH包含了系统调用、读写、进程、2D、3D、管道、运算、C库等系统基准性能,会对系统CPU、内存、磁盘、网络等各个方面进行一系列的测试,然后将每个测试结果和基准值进行比较,得到一个索引值,所有测试项目的索引值结合在一起形成一个测试分数值。

使用方法:

安装:tar -xvzf unixbench-5.1.3.tgz:解压unixbench-5.1.3.tgz压缩包

      cd unixbench-5.1.3:进入unixbench-5.1.3文件夹 

make:编译安装unixbench

使用:在unixbench-5.1.3文件夹中使用命令。

字符串能力测试:./Run dhry2reg

浮点能力测试:./Run whetstone-double

综合能力测试:./Run -c 4 (指定并行线程数)

2 磁盘性能

磁盘性能通过FIO测试,磁盘的性能关键指标包括IOPS、带宽和时延。

  • IOPS,iops指的是磁盘每秒能够处理的io请求个数,一般用于评估随机读写的性能,真实场景对应数据库等应用
  • 带宽,带宽针对顺序读写的场景,评估的是磁盘的带宽能力,真实场景一般对应文件服务器等应用
  • 时延,物理IOPS还是带宽的场景,时延都表明了磁盘处理的速度

安装fio

第一种方式,安装包离线使用

先确认gcc已正常使用编译器 命令:解压gcc rpm包 cd gcc rpm -ivh *.rpm --nodeps --force

然后安装读写引擎 libaio 命令:yum -y install libaio-devel

安装fio:tar -xvzf fio-2.1.tar.gz:解压压缩包 (无压缩包可直接yum安装:yum -y install fio)

cd fio-2.1:进入fio-2.1文件夹

./configure:配置安装选项

make:编译

make install:安装

使用方式:任意位置输入命令:

fio --name=global --ioengine=libaio --bs=4k --rw=randrw --filename=/dev/vda --runtime=300 --direct=1 --time_based -numjobs=1 -iodepth=32 --name=job --group_reporting

第二种,命令行yum下载

1). yum -y install libaio-devel

2). yum -y install fio

安装完成即可输入命令使用

fio --name=global --ioengine=libaio --bs=4k --rw=randrw --filename=/dev/vda --runtime=300 --direct=1 --time_based -numjobs=1 -iodepth=32 --name=job --group_reporting

虚拟机存储IOPS性能测试(16K随机读/写):

随机写:fio -name=/mnt/sdc/tmpfile(根据实际磁盘挂载情况设置) -direct=1 -iodepth=XX(1-32范围内可选)j -rw=randwrite -ioengine=libaio -bs=16k -size=16G -numjobs=1 -group_reporting -runtime=600

随机读:fio -name=/mnt/sdc/tmpfile(根据实际磁盘挂载情况设置) -direct=1 -iodepth=XX(1-32范围内可选) -rw=randread -ioengine=libaio -bs=16k -size=16G -numjobs=1 -group_reporting -runtime=600

-direct 是(1)否(0)跳过buffer使用直接IO;

-iodepth IO队列深度,1-32范围内可选;

-ioengine=libaio使用libaio异步io库libaio作为IO引擎,异步IO;

-bs 16k单次IO块大小为16K;

-size 16G总共IO大小;

-rw指定测试类别此处为randwrite随机写/ randread随机读。

3 内存性能测试--- stream

Stream测试是内存测试中业界公认的内存带宽性能测试基准工具。stream由Virginia University提供,通过生成四种不同模式下的内存读写操作,用于测试高性能计算机的内存带宽。 现代计算机中都是用缓存技术,为了保证测试正确反映计算机内存的读写性能,测试中使用的数据量应远大于缓存大小。

Copy为最简单的操作,即从一个内存单元中读取一个数,并复制到另一个内存单元,有2次访存操作。
Scale是乘法操作,从一个内存单元中读取一个数,与常数scale相乘,得到的结果写入另一个内存单元,有2次访存。
Add是加法操作,从两个内存单元中分别读取两个数,将其进行加法操作,得到的结果写入另一个内存单元中,有2次读和1次写共3次访存。
Triad是前面三种的结合,先从内存中读取一个数,与scale相乘得到一个乘积,然后从另一个内存单元中读取一个数与之前的乘积相加,得到的结果再写入内存。所以,有2次读和1次写共3次访存操作。

测试结果一般的规律是Add > Triad > Copy > Scale。一次Add操作需要访问三次内存(两个读操作,一个写操作),Triad操作也需要三次访问内存, Copy和Scale操作需要两次访问内存。单位操作内,访问内存次数越多,越能够掩盖访存延迟,带宽越大。

工具安装:

解压 tar xvf stream.tar

编译安装

单线程:gcc -mtune=native -march=native -O3 -mcmodel=medium -DSTREAM_ARRAY_SIZE=200000000 -DNTIMES=30 stream.c -o stream.o

多线程:gcc -mtune=native -march=native -O3 -mcmodel=medium -fopenmp -DSTREAM_ARRAY_SIZE=200000000 -DNTIMES=30 stream.c -o stream.o

测试命令

./stream.o

4 **CPU性能测试----**sysbench

sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。Sysbench 测试CPU性能的算法是在指定时间内循环进行素数计算。

工具编译安装:

解压安装包:tar –zxvf sysbench.tar.gz

更新套件: rpm -Uvh --force --nodeps *rpm

执行命令:

1)测试Threads=1时的cpu性能

sysbench --threads=1 cpu run

2)测试Threads=4时的CPU性能

sysbench --threads=4 cpu run

5 网络性能----netperf

虚机的网络性能主要包括两个方面

  • 带宽,指的是网卡的带宽限制,对应场景一般为下载服务器等
  • pps,每秒包处理数,主要对应机器的cpu处理能力,对应场景一般为web服务器等

测试使用netperf 工具进行,具有一定的通用可比性。其中TCP_STREAM用来测试带宽,TCP_CRR用来测试pps。

测试场景分为两个:1)不同VPC下的两个虚机互相访问;2)同一VPC下两个虚机互相访问。两个场景分别反应:外网访问虚机的网络性能,以及内部虚机互访的网络性能。

使用netperf-2.7.0

安装方式:tar -xvzf netperf-2.7.0.tar.gz解压压缩包

    cd netperf-2.7.0进入netperf-2.7.0文件夹 

    ./configure配置安装配置 

    make编译安装 

进入netperf-2.7.0/文件夹

使用方式:

服务器端:在netperf-2.7.0/文件夹下使用命令./netserver

客户端:在netperf-2.7.0/文件夹下使用命令:

  • netperf -H 192.168.100.99 -P 12865 -T UDP_STREAM -l 10 -- -m 2048 //指定端口或
  • netperf -H 192.168.100.99 -T UDP_STREAM -l10 -- -m 2048. //使用默认端口

netperf使用服务端

  • netserver //启动服务器
  • ssh -ln //监听端口
  • ps aux |grep net //查看其进程
  • netstat -nap|grep net //查看状态

关闭虚拟机防火墙:在服务器端、客户端关闭防火墙,命令:service iptables stop

虚拟机的增强网络性能测试:

ifconfig ethx mtu 8240设置虚拟机网卡MTU=8240

  • ethx指定虚拟机网卡

./netperf –t TCP_STREAM –H remote(根据实际IP设置) –l 120 -- -m8192测5次

  • -t TCP_STREAM:指定的测试类别为TCP吞吐测试

./netperf –t UDP_STREAM –H remote(根据实际IP设置) –l 120 -- -m8192测5次

  • -t UDP_STREAM:指定的测试类别为UDP吞吐测试
  • remote指的是远端netperf服务器IP地址
  • -l 120指定的时间为120s

测试结果单位是Mbit/s

命令介绍

根据作用范围的不同,netperf的命令行参数可以分为两大类:全局命令行参数、测试相关的局部参数,两者之间使用--分隔:

Netperf [global options] –-[test-specific options]

其中:

全局命令行参数包括如下选项:

-H host :指定远端运行netserver的server IP地址。

-l testlen:指定测试的时间长度(秒)

-t testname:指定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR

测试相关的局部参数包括如下选项:

-s size 设置本地系统的socket发送与接收缓冲大小

-S size 设置远端系统的socket发送与接收缓冲大小

-m size 设置本地系统发送测试分组的大小

-M size 设置远端系统接收测试分组的大小

-D 对本地与远端系统的socket设置TCP_NODELAY选项

标签: 测试工具

本文转载自: https://blog.csdn.net/weixin_55964958/article/details/125543884
版权归原作者 weixin_55964958 所有, 如有侵权,请联系我们删除。

“性能测试工具”的评论:

还没有评论