在测试前,理应了解本机所具备的特点,比如CPU频率、内存频率、内存大小,等等信息。

查看CPU用如下命令(多少个核,频率,特性等):

cat /proc/cpuinfo

查看内存用如下命令:(只有当前内存大小,已用空间等等,不能看到内存频率)

cat /proc/meminfo

要查看内存型号和频率等信息,用如下的命令:

sudo dmidecode -t memory

查看cpu内核频率命令:

cat /proc/cpuinfo |grep MHz|uniq

内存带宽的计算公式是:带宽=内存核心频率×内存总线位数×倍增系数。简化公式为:标称频率*位数。比如一条DDR3 1333MHz 64bit的内存,理论带宽为:1333*64/8=10664MiB/s = 10.6GiB/s

常用命令:

mbw -q -n 10 256

-n 10表示运行10次,256表示测试所用的内存大小,单位为MB。

mbw测试了MEMCPY、DUMB、MCBLOCK等方式的内存带宽。从测试结果看,前2都差不多,最后一种测试得到的带宽值比较高。

下面是使用taskset指定CPU核心和运行mbw次数的脚本。真正使用到的是taskset命令,它可以指定程序在哪个CPU核上跑,在多核CPU上,是个不错的工具。

taskset -cp 0,1 7460

[root@WQ mbw-master]# ./mbw -h

mbw memory benchmark v1.4, https://github.com/raas/mbw

Usage: mbw [options] array_size_in_MiB

Options:

-n: number of runs per test (0 to run forever)

-a: Don't display average

-t0: memcpy test          内存拷贝

-t1: dumb (b[i]=a[i] style) test               字符串拷贝

-t2: memcpy test with fixed block size     内存块拷贝

-b <size>: block size in bytes for -t2 (default: 262144)

-q: quiet (print statistics only)

(will then use two arrays, watch out for swapping)

'Bandwidth' is amount of data copied over the time this operation took.

The default is to run all tests available.

 
mpstat -P ALL 2    2秒监视
 
[root@WQ mbw-master]# ./mbw -q -n 1 256
0 Method: MEMCPY Elapsed: 0.06992 MiB: 256.00000 Copy: 3661.327 MiB/s
AVG Method: MEMCPY Elapsed: 0.06992 MiB: 256.00000 Copy: 3661.327 MiB/s
0 Method: DUMB Elapsed: 0.13613 MiB: 256.00000 Copy: 1880.569 MiB/s
AVG Method: DUMB Elapsed: 0.13613 MiB: 256.00000 Copy: 1880.569 MiB/s
0 Method: MCBLOCK Elapsed: 0.10634 MiB: 256.00000 Copy: 2407.282 MiB/s
AVG Method: MCBLOCK Elapsed: 0.10634 MiB: 256.00000 Copy: 2407.282 MiB/s

MBW内存测试的更多相关文章

  1. 【转帖】MBW内存测试

    MBW内存测试 https://www.cnblogs.com/dongdongwq/p/5431561.html 在测试前,理应了解本机所具备的特点,比如CPU频率.内存频率.内存大小,等等信息. ...

  2. 内存测试——Android Studio自带内存检测功能

    AndroidStudio 自带 CPU 和内存检测工具,绘制出变化图,可以直观明了的看出内存和cpu的变化曲线. 手机连接电脑,选择要调试的手机,选择要检测的应用进程,Memory是内存监控,CPU ...

  3. APP性能测试工具GT的使用总结:app内存测试

    APP性能测试工具GT的使用总结:app内存测试 GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment). ...

  4. 进入除错模式!进入此模式后,将会出现更多的选项,分别是: · 以基本图形介面安装 CentOS 7 (使用标准显卡来设定安装流程图示); · 救援Centos系统; · 执行内存测试(Run a memory test);

    Centos 7.3 安装 0.0392017.07.14 20:12:09字数 1550阅读 985 Centos 7.3 基于 Red Hat 企业版的源代码的最新版本的 CentOS 7 在今年 ...

  5. 内存测试工具memtester

    Memtester是用户态工具,用于测试内存子系统的故障.非常方便,支持32位 或64位Unix-like系统.对于硬件开发开发者来说,memtester可以定位到物理地址. 1. 安装 下载地址ht ...

  6. Redis源代码分析(十一年)--- memtest内存测试

    今天,我们继续redis源代码test下测试在封装中的其它文件.今天读数memtest档,翻译了,那是,memory test 存储器测试工具..可是里面的提及了非常多东西,也给我涨了非常多见识,网上 ...

  7. Memtester——Linux内存测试工具

    一.Memtester简单介绍 Memtester主要是捕获内存错误和一直处于很高或者很低的坏位, 其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等. 通过给定测试内存的大小和次数, ...

  8. 内存测试——内存泄露工具 LeakCanary

    项目地址 https://github.com/square/leakcanary 接入方法 1. 配置依赖 dependencies { debugCompile 'com.squareup.lea ...

  9. 移动App性能评测与优化-Android内存测试 ,DVM原理

    常见的测试方法包括Monkey/UIAutomator类的常规压力测试,大数据/操作的峰值压力测试,长时间运行的稳定性测试等. 前提: 测试准备:版本是纯净版本,不应该附加多余的log和调试用组件. ...

随机推荐

  1. 【转】NHibernate:no persister for 异常

    1.配置文件后缀名写错 mapping file 必须是.hbm.xml结尾 2.Web.config配置里面引用实体 <session-factory> <mapping asse ...

  2. jQueryMobile控件之ListView

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. svg DOM的一些js操作

    这是第一个实例,其中讲了如何新建svg,添加元素,保存svg document,查看svg. 下面将附上常用一些元素的添加方法:(为js的,但基本上跟java中操作一样,就是类名有点细微差别) Cir ...

  4. 关于设置border的小技巧

    可以在需要的时候,在某个元素下面放一个长或宽为1px,或者你需要的border宽度的 div ,再在这个div 上设置border.按需要调整这个div的位置.

  5. webApp--cordova 系列1

    1.在node,npm 可用的前提下 npm install -g cordova 大约10分钟后装完,cmd中输入cordova -v  验证是否安装成功 2.cordova项目打包是用ant完成, ...

  6. HDU 4251 --- 主席树(划分树是正解)

    题意:查询区间中位数 思路:模板题,相当于区间第K大的数,主席树可以水过,但划分树是正解.但还没搞明白划分树,先上模板 #include <iostream> #include <c ...

  7. IOS7.0 Xcode5 AutoLayout 备忘录

    Xcode5 xib设置autolayout方式: 列表1: (选择两个view时可设置) 左边对齐, 右边对齐, 顶部对齐, 底部对齐, x轴中心对齐, y轴中心对齐, 文本底标线对齐, (单选择一 ...

  8. angularjs 迭代器

    angularjs 迭代器可以使用管道字符(|)添加到表达式和指令中. 有以下五种转换数据的迭代器: (1)currency-格式化数字为货币格式. (2)filter-从数组中选择一个一个子集. ( ...

  9. String和StringBuffer

    已知在Java中,boolean.byte.short.int.long.char.float.double这八种是基本数据类型,其余的都是引用类型,比如String.数组.接口.对象等. 当我们声明 ...

  10. java.lang.ClassNotFoundException: Didn't find class "*****(转载)

    很多人出现了java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{*****Activity}: java. ...