Bandwidth内存带宽测试工具

本博文为原创,遵循CC3.0协议,转载请注明出处:http://blog.csdn.net/lux_veritas/article/details/24766015

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Bandwidth是一款内存带宽基准测试程序,主要针对x86及x86_64平台,通过顺序读写与随机读写不同大小的数据块,测试系统的内存带宽性能。

项目地址

Bandwidth提供了一套汇编语言实现的支持库,用来完成体系结构相关的特定操作,例如读取某些寄存器的内容。

利用该汇编库,检测当前系统CPU的型号及支持的特性,并选择相应的工作模式,如笔者机器的CPU为:

CPU family: GenuineIntel
CPU features: MMX SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 XD Intel64

在主程序运行时,根据CPU特性选择工作模式:

    if (mode == SSE2) {
        print (L"(128-bit), size = ");
    }
    else if (mode == AVX) {
        print (L"(256-bit), size = ");
    }
    else {
#ifdef __x86_64__
        print (L"(64-bit), size = ");
#else
        print (L"(32-bit), size = ");
#endif
    }

笔者的CPU支持SSE2,不支持AVX,故采用128bit的数据位宽进行相应的内存读写操作。

以笔者的机器为例,测试主要分为以下几个部分:

|-------|128bit    |64bit |

|:-----:|:-----:|:----:|

|顺序读  |    |      |

|随机读    |    |      |

|顺序写    |    |      |

|随机写    |    |      |

可以选择是否旁路掉各级cache,笔者机器的CPU cache情况如下:

Cache 0: L1 data cache,        line size 64,  8-ways,    64 sets, size 32k
Cache 1: L1 instruction cache, line size 64,  8-ways,    64 sets, size 32k
Cache 2: L2 unified cache,     line size 64, 16-ways,  4096 sets, size 4096k

用于读写的数据块大小从128B逐渐增大到128MB,由于各级cache的大小不同,进行内存读写时,较小的数据块会存放在cache中,较大的数据块则会经过cache存放在主存中。所以,随着数据块大小的增加,在几个节点上带宽的大小会有明显的跳变,主要原因就是到达了各级cache的容量上限,而转向下层存储。bandwidth会将测试结果生成一个日志文件,一张图表,这种带宽的跳变在图表中有最直观的表现。如图,在32KB与4MB处带宽有明显的下降趋势

Bandwidth内存带宽测试工具,布布扣,bubuko.com

时间: 2024-10-09 04:54:14

Bandwidth内存带宽测试工具的相关文章

Bandwidth内存带宽測试工具

本博文为原创,遵循CC3.0协议,转载请注明出处:http://blog.csdn.net/lux_veritas/article/details/24766015 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------

内存带宽测试-STREAM的使用

一:STREAM的起源 STREAM测试工具是由时为美国Delaware大学教授 John McCalpin提出和完成的, 现在随着John McCalpin教授的工作变动, 负责 STREAM 的维护和改进的所有工作人员也转移到了Virginia大学的计算机科学系. 二:STREAM的用途 STREAM是一套综合性能测试程序集,通过fortran和C两种高级且高效的语言编写完成,由于这两种语言在数学计算方面的高效率, 使得 STREAM 测试例程可以充分发挥出内存的能力. STREAM 测试得

使用iperf工具进行带宽测试

本文将介绍如何使用工具iperf进行带宽测试. iperf是一个比较好用网络性能测试工具,可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽.延迟抖动和数据包丢失.本文只介绍如何测试带宽. (工具下载地址:https://pan.baidu.com/s/1c22exDu,密码:qnmg) 下载软件,解压,iperf3.exe就是我们将要使用的工具. 在两端测试PC上安装好工具. 在测试带宽之前,确保两端网络可达,确定可以ping通(如台式机ping不通注

linux cpu、内存、IO、网络的测试工具(转)

一.linux cpu.内存.IO.网络的测试工具cpu测试工具1.Super Pi for linuxSuper PI是利用CPU的浮点运算能力来计算出π(圆周率),所以目前普遍被用户用做测试系统稳定性和测试CPU计算完后特定位数圆周率所需的时间. ./super_pi 2020为位数.表示要算2的多少次方位,如通常要算小数点后1M位.2.sysbenchsysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试. 内存测试

IO测试工具之fio详解

目前主流的第三方IO测试工具有fio.iometer和Orion,这三种工具各有千秋. fio在Linux系统下使用比较方便,iometer在window系统下使用比较方便,Orion是oracle的IO测试软件,可在没有安装oracle数据库的情况下模拟oracle数据库场景的读写. 如下是在Linux系统上采用fio工具来对SAN存储进行的IO测试. 1.安装fio 在fio官网下载fio-2.1.10.tar文件,解压后./configure.make.make install之后就可以使

HTTP/HLS/RTMP超级负载测试工具(转)

这个负载测试工具是网游分享的工具,可以在http://blog.csdn.net/win_lin/article/details/11835011 或者https://github.com/winlinvip/st-load 找到非常详细的介绍,包括如何安装,如何使用. 服务器负载测试工具(st-load): 模拟huge并发:2G内存就可以开300k连接.基于states-threads的协程. 支持HLS解析和测试,下载ts片后等待一个切片长度,模拟客户端.支持HLS点播和直播. 支持HTT

Android 开源项目android-open-project开发工具及测试工具解析 开发效率工具,开发自测相关,测试工具,开发及编译环境,其他

主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Parceler 通过注解及工具类自动完成实体类 Parcelable及值传递 项目地址:https://github.com/johncarl81/parceler Json2Java 根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson Annotations对应代码自动生成.期待后续的提取父类以及多url构建整个工程的功能 项目地址:https://github.com/jonfhancoc

10大主流压力测试工具推荐

在移动应用和Web服务正式发布之前,除了进行必要的功能测试和安全测试,为了保证互联网产品的服务交付质量,往往还需要做压力/负载/性能测试.然而很多传统企业在试水互联网+的过程中,往往由于资源或产品迭代速度等原因忽视了这一块工作,导致新产品上线之后频繁出现卡顿等严重影响用户体验的问题.那么互联网产品为什么要进行压力/负载/性能测试,又有哪些工具帮我们实现呢,本文将为您细说端详. 压力/负载/性能测试之异同 在产品研发过程中,常常会混淆压力/负载/性能测试这三者之间的区别,这三种测试到底有什么不同呢

初步了解网站压力测试工具

一.ab网站压力测试 ab是apache自带的压力测试工具,ab是apachebench命令缩写.它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比如nginx.tomcat.IIS等. 如:ab -n 1000 -c 50 http://www.newdev.gztest.com/(-n 全部请求数  -c 并发数) Requests per second: 108.61 [#/sec] (mean) #每秒请 求数(平均)//大家最关心的指标之一,