测试环境:

CPU:Kunpeng 920 8Core
MEM:16G
Storage:200G
OS:openEuler 20.03 (LTS-SP3)

1 服务器资源监控工具——Stream

1.1 编译安装——Stream

  1. 源码编译安装

​ 下载源码:

wget http://www.cs.virginia.edu/stream/FTP/Code/stream.c

​ 解压编译:

gcc -O3 -fopenmp -DN=2000000 -DNTIMES=10 stream.c -o stream
  • 1

​ 参数说明:

-O3:
指定最高编译优化级别,即3 -fopenmp:

启用OpenMP,适应多处理器环境,更能得到内存带宽实际最大值。开启后,程序默认运行线程为CPU线程数 -DN=2000000:

指定测试数组a[]、b[]、c[]的大小(Array size)。该值对测试结果影响较大(5.9版本默认值2000000,。若stream.c为5.10版本,参数名变为-DSTREAM_ARRAY_SIZE,默认值10000000)。注意:必须设置测试数组大小远大于CPU 最高级缓存(一般为L3 Cache)的大小,否则就是测试CPU缓存的吞吐性能,而非内存吞吐性能。

推荐计算公式:{最高级缓存X MB}×1024×1024×4.1×CPU路数/8,结果取整数

解释:由于stream.c源码推荐设置至少4倍最高级缓存,且STREAM_ARRAY_SIZE为double类型=8 Byte。所以公式为:最高级缓存(单位:Byte)×4.1倍×CPU路数/8

例如:测试机器是双路CPU,最高级缓存32MB,则计算值为32×1024×1024×4.1×2/8≈34393292 -DNTIMES=10:

执行的次数,并从这些结果中选最优值。 stream.c:

待编译的源码文件 stream:

输出的可执行文件名 其他参数:

-mtune=native -march=native:

针对CPU指令的优化,此处由于编译机即运行机器。故采用native的优化方法。更多编译器对CPU的优化参考 -mcmodel=medium:

当单个Memory Array Size 大于2GB时需要设置此参数 -DOFFSET=4096:

数组的偏移,一般可以不定义

1.2 验证与运行——Stream

  1. 运行

​ 使用命令指定运行线程为X:

export OMP_NUM_THREADS=X
  • 1

​ 在编译输出的可执行文件(stream)所在目录下运行:

./stream

​ 返回结果:

[root@controller ~]# export OMP_NUM_THREADS=4
[root@controller ~]# ./stream
-------------------------------------------------------------
STREAM version $Revision: 5.10 $
-------------------------------------------------------------
This system uses 8 bytes per array element.
-------------------------------------------------------------
***** WARNING: ******
It appears that you set the preprocessor variable N when compiling this code.
This version of the code uses the preprocesor variable STREAM_ARRAY_SIZE to control the array size
Reverting to default value of STREAM_ARRAY_SIZE=10000000
***** WARNING: ******
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.
-------------------------------------------------------------
Number of Threads requested = 4
Number of Threads counted = 4
-------------------------------------------------------------
Your clock granularity/precision appears to be 1 microseconds.
Each test below will take on the order of 4240 microseconds.
(= 4240 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: 31305.2 0.005203 0.005111 0.005255
Scale: 36232.0 0.004490 0.004416 0.004747
Add: 36457.7 0.006733 0.006583 0.007083
Triad: 36933.9 0.006661 0.006498 0.006960
-------------------------------------------------------------
Solution Validates: avg error less than 1.000000e-13 on all three arrays
-------------------------------------------------------------

1.3 其他——Stream

  1. Steam源码
http://www.cs.virginia.edu/stream/FTP/Code/
  1. Git仓库
https://github.com/jeffhammond/STREAM

</article>

[转帖]记录自己安装内存带宽测试工具——Stream过程的更多相关文章

  1. Linux系统性能测试工具(一)——内存带宽测试工具mbw

    本文介绍关于Linux系统(适用于centos/ubuntu等)的内存带宽测试工具-mbw.内存性能测试工具包括: 内存带宽测试工具——mbw: 内存压力测试工具——memtester: 内存综合性能 ...

  2. Linux系统性能测试工具(二)——内存压力测试工具memtester

    本文介绍关于Linux系统(适用于centos/ubuntu等)的内存压力测试工具-memtester.内存性能测试工具包括: 内存带宽测试工具——mbw: 内存压力测试工具——memtester: ...

  3. 【工具】 memtester内存压力测试工具

    作者:李春港 出处:https://www.cnblogs.com/lcgbk/p/14497838.html 目录 一.简介 二.Memtester安装 三.使用说明 四.测试示例 一.简介 mem ...

  4. MAC系统上安装Apache ab测试工具

    第一步:下载 Apache HTTP Server http://httpd.apache.org/download.cgi#apache24 第二步:安装brew工具 https://brew.sh ...

  5. mac安装浏览器同步测试工具

    1.安装node.js (1)打开终端,输入以下命令安装Homebrew ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebre ...

  6. Ubuntu 16.04下安装Apache压力测试工具ab

    安装 sudo apt-get install apache2-utils 简单使用 # 对http://www.baidu.com/进行100次请求,10个并发请求压力测试结果. ab -n 100 ...

  7. mac使用brew安装配置常见测试工具

    Homebrew 包管理工具可以让你安装和更新程序变得更方便,目前在 OS X 系统中最受欢迎的包管理工具是 Homebrew. 安装 在安装 Homebrew 之前,需要将 Xcode Comman ...

  8. Linux系统性能测试工具(三)——内存性能综合测试工具lmbench

    本文介绍关于Linux系统(适用于centos/ubuntu等)的内存性能综合测试工具-lmbench.内存性能测试工具包括: 内存带宽测试工具——mbw: 内存压力测试工具——memtester: ...

  9. show processlist,sysbench压力测试工具

    processlist.sh 记录数据库的状态 #!/bin/bash while true do mysql -uroot -pwangxiaohu -e 'show processlist\G'| ...

  10. 常见Android测试工具简介

    在进行android设备测试过程中,在进行系统测试时候,往往需要关注到很多方面,导致一个崩溃或者运行一段时间自动重启或者停止的问题很多.最简单来看,影响因素就有:底层硬件设备.OS层.上层app层.另 ...

随机推荐

  1. 【CVPR2022】用于域适应语义分割的域无关先验

    摘要:本文给大家分享一篇我们在CVPR 2022 上发表的paper:Domain-Agnostic Prior for Transfer Semantic Segmentation.文章提出了一种图 ...

  2. 深度解读鸿蒙轻内核CPU占用率

    摘要:CPUP(Central Processing Unit Percentage,CPU占用率)分为系统CPU占用率和任务CPU占用率.用户通过系统级的CPU占用率,判断当前系统负载是否超出设计规 ...

  3. Python 可以满足你任何 API 使用需求

    摘要:在本教程中学到的概念和技术将允许您使用自己喜欢的任何 API 进行练习,并使用 Python 来满足您可能拥有的任何 API 使用需求. 本文分享自华为云社区<Python 和 API:读 ...

  4. instanceof运算符的实质:Java继承链与JavaScript原型链

    Java instanceof instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例 boolean result = obj instanceof Clas ...

  5. Solon Web 开发,十、签权

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  6. Ubuntu 安装 MySQL 5.7

    一.安装MySQL 1. 删除Mysql 数据库 sudo apt autoremove --purge mysql-server-* sudo apt remove mysql-server sud ...

  7. 最优订单执行算法相关Paper介绍

    更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 随着量化交易.高频交易的竞争日益激烈,事实证明,交易执行显着影响量化策略的投资绩效. 因此,许多从业者开 ...

  8. CO02生产订单新增组件

    "-----------------------------------------@斌将军-------------------------------------------- LOOP ...

  9. Python使用pandas库读取txt文件中的Json数据,并导出到csv文件

    使用的是 Python 3 代码: #!/usr/bin/python # -*- coding: gbk -*- # JSON数据导出到csv文件 import json import pandas ...

  10. 实时渲染前沿研究:在浏览器上实现了Facebook提出的DLSS算法

    大家好,我基于WebNN在浏览器上实现了2020年Facebook提出的Neural-Supersampling-for-Real-time-Rendering算法.它是一个用于实时渲染的神经网络超采 ...