Linux性能测试工具
在Linux Benchmark Suite Homepage网站上列举了诸多Linux性能测试工具,包括CPU/RAM/ROM/Cache/net等性能测试。iozone
工具我们在前面的文章中已经介绍和使用过了。今天,我们主要来玩一下关于RAM
的读写性能测试。
lmbench
测试工具
这个工具集中包含以下几种测试工具,我们主要使用到bw_mem
工具进行Memory read和write测试。
1、Bandwidth benchmarks(带宽测试)
- Cached file read
- Memory copy (bcopy)
- Memory read
- Memory write
- Pipe
- TCP
2、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
3、Miscellanious
- Processor clock rate calculation
交叉编译
1、从 How do I get LMbench? 或者从github下载源码;
2、设置交叉工具链和编译FLAG
修改src/Makefile
中的CC
和EXFLAGS
为:
1 | CC=/home/xxx/work2/xxx/imx8x/prebuilt/toolchains/aarch64-imx8x-linux/bin/aarch64-poky-linux-gcc |
3、编译
使用make OS=arm-linux build
编译。
如果出现如下错误:
1 | cd src && make |
解决办法就是创建一个文件。
1 | mkdir SCCS |
上述编译好了之后,就可以在/bin/arm-linux/
目录下生成可执行文件,关于各个可执行文件的用法,可以简要的参照:
lmbench1.0 manual pages
lmbench
memory性能测试
将bw_mem
文件拷贝到板子上运行如下命令:
1 | @android:/var # ./bw_mem 256M wr |
各个参数含义如下:
1 | /* |
输出结果为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、下载源码
1 | mkdir STREAM |
2、指定交叉工具链:
1 | 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、执行结果为:
1 | @android:/var # ./stream_c.exe |
目前还不知道这个结果都是些什么,与上文的lmbench
的bw_mem
工具差异蛮的的,有待后续研究。
STREAM
参考资料如下:
STREAM: Sustainable Memory Bandwidth in High Performance Computers
What is STREAM
stream gitlab