举例说说,Linux常用性能测试工具

发表于:2022-6-07 09:40

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:疯狂的蕉尼基    来源:掘金

  在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
  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

  交叉编译
  从How do I get LMbench或者从github下载源码,设置交叉工具链和编译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

  使用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/目录下生成可执行文件,关于各个可执行文件的用法,可以简要的参照:
  http://www.bitmover.com/lmbench/man_lmbench.html
  http://lmbench.sourceforge.net/man/lmbench.8.html

  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.
*/

  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为单位)和简单矢量内核的相应计算速率。

  交叉编译
  下载源码:
mkdir STREAM
cd STREAM
wget -r -R 'index*' -np -nH --cut-dirs=3 http://www.cs.virginia.edu/stream/FTP/Code

  指定交叉工具链:
CC=/home/xxx/work2/xxx/imx8x/prebuilt/toolchains/aarch64-imx8x-linux/bin/aarch64-poky-linux-gcc

  在编译的时候,需要指定一些参数,这些参数对结果影响很大,建议直接查看stream.c源文件。
  编译c语言版本的工具make stream_c.exe,生成stream_c.exe可执行文件。
  执行结果为:
  @android:/var # ./stream_c.exe
  目前还不知道这个结果都是些什么,与上文的lmbench的bw_mem工具差异蛮大的,有待后续研究。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号