Linux性能测试工具

在Linux Benchmark Suite Homepage网站上列举了诸多Linux性能测试工具,包括CPU/RAM/ROM/Cache/net等性能测试。

lmbench

测试工具

这个工具集中包含以下几种测试工具,我们主要使用到bw_mem工具进行Memory read和write测试。

  1. Bandwidth benchmarks(带宽测试)
  • Cached file read
  • Memory copy (bcopy)
  • Memory read
  • Memory write
  • Pipe
  • TCP
  1. Latency benchmarks(延时测试)
  • Context switching.
  • Networking: connection establishment, pipe, TCP, UDP, and RPC hot potato
  • File system creates and deletes.
  • Process creation.
  • Signal handling
  • System call overhead
  • Memory read latency
  1. Miscellanious
  • Processor clock rate calculation

交叉编译

  1. 从 How do I get LMbench? 或者从github下载源码;
  2. 设置交叉工具链和编译FLAG
    修改src/Makefile中的CC和EXFLAGS为:
CC=/home/imx8x/prebuilt/toolchains/aarch64-imx8x-linux/bin/aarch64-poky-linux-gcc
EXFLAGS=-static -march=armv8-a -mfpu=neon -mfloat-abi=hard -mtune=cortex-a35 -funroll-loops
  1. 编译
    使用make OS=arm-linux build编译。
    如果出现如下错误:
cd src && make
make[1]: Entering directory '/home/xxx/work2/util/lmbench3/src'
make[2]: Entering directory '/home/xxx/work2/util/lmbench3/src'
make[2]: *** No rule to make target '../SCCS/s.ChangeSet', needed by 'bk.ver'.  Stop.
make[2]: Leaving directory '/home/xxx/work2/util/lmbench3/src'
Makefile:117: recipe for target 'lmbench' failed
make[1]: *** [lmbench] Error 2
make[1]: Leaving directory '/home/xxx/work2/util/lmbench3/src'
Makefile:20: recipe for target 'build' failed
make: *** [build] Error 2

解决办法:

mkdir SCCS
cd SCCS
touch s.ChangeSet

上述编译好了之后,就可以在/bin/arm-linux/目录下生成可执行文件,关于各个可执行文件的用法,可以简要的参照:
lmbench1.0 manual pages
lmbench

memory性能测试
将bw_mem文件拷贝到板子上运行如下命令:

@android:/var # ./bw_mem 256M wr                                              
268.44 573.30
@android:/var # ./bw_mem 256M fwr                                             
268.44 3034.69
@android:/var # ./bw_mem 256M rd                                              
268.44 896.46
@android:/var # ./bw_mem 256M frd                                             
268.44 867.99

各个参数含义如下:

/*
* rd - 4 byte read, 32 byte stride
* wr - 4 byte write, 32 byte stride
* rdwr - 4 byte read followed by 4 byte write to same place, 32 byte stride
* cp - 4 byte read then 4 byte write to different place, 32 byte stride
* fwr - write every 4 byte word
* frd - read every 4 byte word
* fcp - copy every 4 byte word
* All tests do 512 byte chunks in a loop.                        
* XXX - do a 64bit version of this.
*/

输出结果为megabytes, megabytes_per_second。

参考资料
Lmbench-Ti
LMbench - Tools for Performance Analysis

STREAM

官方的说法是:

The STREAM benchmark is a simple synthetic benchmark program that measures sustainable memory bandwidth (in MB/s) and the corresponding computation rate for simple vector kernels.

翻译过来就是:
STREAM benchmark是一个简单的综合基准测试程序,用于测量可持续存储器带宽(以MB/s为单位)和简单矢量内核的相应计算速率。

交叉编译
1、下载源码

mkdir STREAM
cd STREAM
wget -r -R 'index*' -np -nH --cut-dirs=3 http://www.cs.virginia.edu/stream/FTP/Code/

2、指定交叉工具链:

CC=/home/xxx/work2/xxx/imx8x/prebuilt/toolchains/aarch64-imx8x-linux/bin/aarch64-poky-linux-gcc

在编译的时候,需要指定一些参数,这些参数对结果影响很大,建议直接查看stream.c源文件。

3、编译c语言版本的工具make stream_c.exe,生成stream_c.exe可执行文件。

4、执行结果为:

@android:/var # ./stream_c.exe                                                
-------------------------------------------------------------
STREAM version $Revision: 5.10 $
-------------------------------------------------------------
This system uses 8 bytes per array element.
-------------------------------------------------------------
Array size = 10000000 (elements), Offset = 0 (elements)
Memory per array = 76.3 MiB (= 0.1 GiB).
Total memory required = 228.9 MiB (= 0.2 GiB).
Each kernel will be executed 10 times.
The *best* time for each kernel (excluding the first iteration)
will be used to compute the reported bandwidth.
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 134214 microseconds.
   (= 134214 clock ticks)
Increase the size of the arrays if this shows that
you are not getting at least 20 clock ticks per test.
-------------------------------------------------------------
WARNING -- The above is only a rough guideline.
For best results, please be sure you know the
precision of your system timer.
-------------------------------------------------------------
Function    Best Rate MB/s  Avg time     Min time     Max time
Copy:            1731.3     0.106711     0.092416     0.125942
Scale:           1294.3     0.140618     0.123622     0.164197
Add:             1107.7     0.232000     0.216672     0.263167
Triad:            991.0     0.252958     0.242168     0.276101
-------------------------------------------------------------
Solution Validates: avg error less than 1.000000e-13 on all three arrays
-------------------------------------------------------------

目前还不知道这个结果都是些什么,与上文的lmbench的bw_mem工具差异蛮的的,有待后续研究。

STREAM参考资料如下:
STREAM: Sustainable Memory Bandwidth in High Performance Computers
What is STREAM
stream gitlab

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: Linux性能测试工具包括: 1. sysstat:系统性能监控工具,可以监控CPU、内存、磁盘、网络等性能指标。 2. top:实时监控系统进程和资源占用情况,可以查看CPU、内存、IO等指标。 3. iostat:监控磁盘IO性能,可以查看磁盘读写速度、IO等待时间等指标。 4. vmstat:监控系统虚拟内存使用情况,可以查看内存、CPU、IO等指标。 5. netstat:监控网络连接和流量,可以查看网络连接状态、流量等指标。 6. sar:系统性能分析工具,可以生成系统性能报告,包括CPU、内存、磁盘、网络等指标。 7. perf:Linux性能分析工具,可以分析CPU、内存、磁盘、网络等性能指标,支持多种分析方式。 8. strace:系统调用跟踪工具,可以跟踪进程的系统调用,用于分析进程性能问题。 9. tcpdump:网络抓包工具,可以抓取网络数据包,用于分析网络性能问题。 以上是常用的Linux性能测试工具,可以根据具体需求选择合适的工具。 ### 回答2: Linux性能测试工具主要用于对计算机系统进行性能测试,实时监测系统的各种指标,并给出分析结果。在Linux操作系统中,常用的性能测试工具包括Sysstat工具、Sar工具、Top工具和Iostat工具等。 Sysstat工具是一种常用的Linux性能测试工具,它可以监测CPU利用率、内存使用情况、磁盘读写情况、网络负载、IO负载等关键性能指标。同时,Sysstat工具可以生成日志文件、图表和报告,方便用户进行性能分析和调优。 Sar工具是System Activity Reporter的缩写,它用于监测系统的活动情况,包括CPU、内存、磁盘、网络和进程活动情况等。Sar工具可以输出实时数据和历史数据,并支持各种参数设置和分析方法。 Top工具常用于监测系统的进程情况和资源占用率,包括CPU、内存、IO、网络等方面。Top工具可以快速查看系统状况,方便用户进行系统优化和调试。 Iostat工具用于监测系统的IO负载情况,包括硬盘读写速度、IOPS、吞吐量等指标。Iostat工具可以分析IO瓶颈和优化方案,提高系统IO性能。 总之,在Linux操作系统中选择适当的性能测试工具,对于系统性能分析和优化具有重要的作用,可以帮助用户提高计算机系统的稳定性和工作效率。 ### 回答3: Linux性能测试工具是一类专门用于测试和评估Linux系统性能的软件工具。它们可以对Linux系统的CPU、内存、硬盘等各个方面进行测试,从而帮助用户了解系统的性能瓶颈和优化方向。以下是常用的Linux性能测试工具介绍: 1. UnixBench:UnixBench 是一个通用的Unix性能测试工具,可用于测试CPU,I/O,内存等部件的性能。它是一个开源软件,包括了大量的测试用例。 2. Sysbench:Sysbench 是一个多功能的系统基准测试工具,可以测试CPU,内存,磁盘I/O等性能。它支持多线程和多进程测试,并且可以自动检测性能瓶颈。 3. Iometer:Iometer 是一款专门用于测试磁盘I/O性能的工具,支持以多种模式测试磁盘读写性能,如随机读,随机写等。 4. Perf:Perf 是一个Linux性能分析工具,可以收集CPU使用率,磁盘I/O,内存使用率等系统数据,并生成分析报告,帮助用户分析和优化系统的性能。 5. Fio:Fio 是一款用于测试磁盘性能和I/O负载的工具,支持多种测试模式,如随机读写,顺序读写等。它支持多线程和异步I/O测试。 6. Netperf:Netperf 是一款网络性能测试工具,可以用于测试TCP,UDP等网络协议的性能。它支持多线程测试,可以模拟多用户并发访问。 以上是几种常见的Linux性能测试工具,用户可以根据实际需要选择合适的工具进行系统性能测试和优化。在选择工具时,应该考虑到测试的覆盖范围、测试用例的准确性、测试结果的可靠性等方面,以充分评估系统的性能
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂的蕉尼基

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值