Linux性能测试工具整理

本文详细介绍了Unixbench、lmbench、stream、iozone、fio、netperf和SPEC2000/2006等性能测试工具的使用方法、功能和测试步骤,强调了它们在评估系统性能、CPU、内存、磁盘、网络以及编译器优化等方面的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

性能测试工具:Unixbench lmbench stream iozone fio netperf spec2000 spec2006

一、unixbench
unixbench主要是用于系统基础性能测试,unixbench也包含一些非常简单的2D和3D图形测试
UnixBench一个基于系统的基准测试工具,不单纯是CPU 内存 或者磁盘测试工具。测试结果不仅仅取决于硬件,也取决于系统、开发库、甚至是编译器
【测试步骤】
1、下载工具并解压
tar -xvf UnixBench5.1.3-1.tar.bz2
#cd unixbench-5.1.3-1
2.修改解压后文件夹中的Makefile文件:
修改第50行:
GL_LIBS = -lGL -lXext -lX11

GL_LIBS = -lGL -lXext -lX11 -lm
3.编译:#make all
4.查看CPU核数:#lscpu
5.执行测试:
单线程测试 ./Run -c 1
四线程测试 ./Run -c 4
八线程测试 ./Run -c 8
十六线程测试 ./Run -c 16
三十二线程测试 ./Run -c 32

二、lmbench
用时间、shell命令启动时间、系统信号处理时间、统计2p/16K的上下文切换性能、16p/64K的上下文切换性能、0K/10K文件创建时间、0K/10K文件删除时间
Lmbench 是一款简易可以移植的内存测试工具,其主要功能有,带宽测评(读取缓存文件、拷贝内存、读/写内存、管道、TCP),延时测评(上下文切换、网络、文件系统的建立和删除、进程创建、信号处理、上层系统调用、内存读入反应时间)等功能。
【测试步骤】
1.将lmbench工具拷贝到系统下,并解压赋权限:
#tar -xvf lmbench-3.0-a9-1.tar.bz2
#cd lmbench-3.0-a9-1
#chmod -R 777 *
2.进入lmbench目录,终端执行:
#make results 进入交互式模式
根据提示信息,选择默认设置回车继续,其中,在选择内存的时候输入10000,保证测试能够尽可能的加快,邮件时选择no
MULTIPLE COPIES[DEFAULT 1]: (默认回车)
Job placement selection[DEFAULT 1]: (默认回车)
MB[default 182159]:4096 (输入4096)
SUBSET (ALL|HARWARE|OS|DEVELOPMENT)[default all]:(默认回车)
FASTMEM[default no]:(默认回车)
SLOWFS[default no]: (默认回车)
DISKS[default none]:(默认回车)
REMOTE[default none]: (默认回车)
Processor mhz[default 2599MHz,0.3848 nanosec clock]: (默认回车)
FSDIR[default /usr/tmp]: /usr/tmp
Status output file [default /dev/tty]: (默认回车)
Mail results [default yes]: no (设置为no)
3.进入lmbench目录,终端执行:
#make see

三、stream
Stream测试是一个简单的综合基准测试程序,它测量可持续的内存带宽(MB/s)。Stream通过fortran和c两种高级且高效的语言编写完成,由于这两种语言在数学计算方面的高效率, 使得stream测试例程可以充分发挥出内存的能力。Stream对于CPU的计算能力要求很小,对CPU内存带宽压力很大。
1.Copy是复制操作
从内存单元中读取一个数,并复制到其他内存单元中
2.Scale是乘法操作
从内存单元中读取一个数,与常数相乘,得到的结果存到其他内存单元。
3.Add是加法操作
从两个内存单元中分别读取两个数,将其进行加法操作后,得到的结果写入另一个内存单元中。
4.Triad是加法、乘法和复制三种操作的结合
从内存中读取一个数,与一个常数相乘得到一个乘积,然后从另一个内存单元中读取一个数与刚才乘积结果相加,得到的结果写入内存。

测试的一般规律是Add>Triad>Copy>Scale。因为一次Add和Triad操作都需要三次访问内存,Copy和Scale操作需要进行两次访问内存,访问内存次数越多越能够掩盖访存延迟,带宽越大。

【测试步骤】
1.登录系统,将stream工具包拷贝至系统
2.在终端中输入:
$sudo su
#tar -xvf stream-5.9-1.tar.bz2
#cd stream-5.9-1
#make
3.继续执行如下步骤:
#./Run.sh -n 1 -n 4 -n 8 -n 16
【注】这里的-n参数的值根据实际CPU核数设定,如只有4核,只跑./Run -n 1 -n 4

四、iozone
测试硬盘读写性能(Mb/s),包括随机和顺序读写平均读写速度(IOzone设置块大小16M,文件大小为物理内存2倍、1倍、1/2倍三组数据)
Iozone执行以下操作测试文件I/O性能:

Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read/write, pread/pwrite variants, aio_read, aio_write, mmap

【测试步骤】
1.登录系统,拷贝iozone测试工具包至系统
2.解压工具:#tar -xvf iozone.tar -C /home/kylin
安装工具:#cd /home/kylin/iozone/src/current
编译 make
安装:
arm平台执行该步骤执行如下命令:#make linux-arm
x86平台执行该步骤执行如下命令:#make
龙芯平台执行该步骤使用如下命令:#make linux
3.输入执行命令:sudo ./iozone -s *G -r 16M -i 0 -i 1 -i 2 -f /home/data -Rb .xls
//
.xls为测试结果文件,可自己定义成自己理解的文件名,但是后缀一定是xls
//-s参数是指文件大小,分别设置为物理内存的2倍、1倍、1/2倍测试
//-r制定测试块的大小
//-f参数是指定测试文件的名字,完成后会自动删除(这个文件必须指定你要测试的那个硬盘中)
//-i #用来指定运行哪个测试。 (0=write/rewrite, 1=read/re-read, 2=random-read/write
3=Read-backwards, 4=Re-write-record, 5=stride-read, 6=fwrite/re-fwrite, 7=fread/Re-fread,
8=random mix, 9=pwrite/Re-pwrite, 10=pread/Re-pread, 11=pwritev/Re-pwritev, 12=preadv/Re-preadv).
总是需要先进行0号测试以便后面的测试有文件可以测试。
也支持使用-i # -i # -i # 以便可以进行多个测试。

五、fio
FIO 是一个多线程IO生成工具,可以生成多种IO模式(随机、顺序、读、写四大类),用来测试磁盘设备的性能。GFIO是FIO的图形监测工具,它提供了图形界面的参数配置,和性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值