Stream:测试服务器内存memory性能

简介:Stream是业界主流的内存带宽测试程序,测试行为相对简单可控。该程序对CPU的计算能力要求很小,对CPU内存带宽压力很大。stream测试得到的是可持续运行的内存带宽最大值,而并不是一般的硬件厂商提供的理论最大值,具有如下特点:

1、主要有四种数组的运算,测试到内存带宽的性能分别为:

数组的复制(Copy)、数组的尺度变换(Scale)、数组的矢量求和(Add)、数组的复合矢量求和(Triad)。

2、数组的值采用了双精度(8个字节)

下载工具:

git clone https://github.com/jeffhammond/STREAM

安装编译工具gcc:

yum install gcc

编译:

gcc -O3 -mcmodel=medium  -mtune=native -march=native -fopenmp -DSTREAM_ARRAY_SIZE=200000000 -DNTIMES=30 stream.c -o stream

如果出现下面的error:

"""stream.c:(.text+0x84): relocation truncated to fit: R_X86_64_PC32 against `.bss'"""

则更换模型参数

-mcmodel=medium #可以选择的参数有large medium small 一般内存大于2G的用medium

执行:

./stream

查看结果:

(base)[root@ci4vyvxi572ysx2s STREAM]# ./stream-------------------------------------------------------------STREAMversion $Revision: 5.10 $-------------------------------------------------------------Thissystem uses 8 bytes per array element.-------------------------------------------------------------Arraysize = 200000000 (elements), Offset = 0 (elements)Memoryper array = 1525.9 MiB (= 1.5 GiB).Totalmemory required = 4577.6 MiB (= 4.5 GiB).Eachkernel will be executed 30 times.The*best* time for each kernel (excluding the first iteration)willbe used to compute the reported bandwidth.-------------------------------------------------------------Numberof Threads requested = 8Numberof Threads counted = 8-------------------------------------------------------------Yourclock granularity/precision appears to be 1 microseconds.Eachtest below will take on the order of 54719 microseconds.(= 54719 clock ticks)Increasethe size of the arrays if this shows thatyouare not getting at least 20 clock ticks per test.-------------------------------------------------------------WARNING-- The above is only a rough guideline.Forbest results, please be sure you know theprecisionof your system timer.-------------------------------------------------------------FunctionBest Rate MB/s  Avg time     Min time     Max timeCopy:           49458.9     0.085377     0.064700     0.093439Scale:          44582.5     0.087781     0.071777     0.094408Add:            47823.5     0.124260     0.100369     0.130012Triad:          49354.8     0.124521     0.097255     0.131659-------------------------------------------------------------SolutionValidates: avg error less than 1.000000e-13 on all three arrays-------------------------------------------------------------

结果参数解析:

Copy:复制操作,即从内存单元中读取一个数,并复制到其他内存单元中,两次访问内存操作Scale:乘法操作,即从内存单元中读取一个数,与常数相乘,得到的记过存到其他内存单元,两次访问内存操作Add:加法操作,从两个内存单元中分别读取两个数,将其进行加法操作后,得到的结果写入另一个内存单元中,3次访问内存操作Triad:前面三种的结合,先从内存中读取一个数,与一个常数相乘得到一个乘积,然后从另一个内存单元中读取一个数与刚才乘积结果相加,得到的结果写入内存。3次访问内存操作

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值