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选项
版权归原作者 weixin_55964958 所有, 如有侵权,请联系我们删除。