Linux内存带宽的一些测试笔记

 2014-10-21 13:20  GNU/LINUX系统

1k 字  669 次

最近要测一下设备的内存性能,于是找了些资料,用了些工具,写了些笔记。那个设备是intel的CPU,而intel有个很强大的工具,叫PTU,但我死活找不到下载链接,找到的文章是几年前写的,从那篇文章看是可以使用的,但我却无缘使用。

在测试前,理应了解本机所具备的特点,比如CPU频率、内存频率、内存大小,等等信息。
查看CPU用如下命令(多少个核,频率,特性等):

1
cat /proc/cpuinfo

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

1
cat /proc/meminfo

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

1
sudo dmidecode -t memory

查看cpu内核频率命令:

1
cat /proc/cpuinfo |grep MHz|uniq

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

下面写一下几个有关的工具

1、mbw工具

ubuntu下已经可以直接安装使用,无须下载源码编译。安装命令:

1
apt-get install mbw

常用命令:

1
mbw -q -n 10 256

-n 10表示运行10次,256表示测试所用的内存大小,单位为MB。
mbw测试了MEMCPY、DUMB、MCBLOCK等方式的内存带宽。从测试结果看,前2都差不多,最后一种测试得到的带宽值比较高。
下面是使用taskset指定CPU核心和运行mbw次数的脚本。真正使用到的是taskset命令,它可以指定程序在哪个CPU核上跑,在多核CPU上,是个不错的工具。

1
2
3
4
5
6
7
8
#!/bin/bash
i=0;
while [[ $i -lt $1 ]]
do
echo to cpu$i
taskset -c $i mbw -q -n $2 256 > /dev/null &
((i++));
done

如./foo 2 10,表示在序号为0到2的CPU跑mbw10次。

2、bandwidth工具

这个工具也很牛,网址为http://zsmith.co/bandwidth.html。它将测试结果生成BMP图,可以很直观观察各种内存大小的带宽。下载源码后,要改Makefile,把font.o minifont.o放在OBJ处,否则编译不通过,我也搞了很久才解决编译问题的。这个工具支持很多平台,输入make就可以看到。在32位x86上编译命令:make bandwidth32。直接运行,之后有结果和BMP输出,不过时间要久一点。

3、lmbench工具

这个工具功能强大,像内存、CPU、文件系统、网络,都可以测试。ubuntu直接apt-get install lmbench来安装即可,不用自己下载源码。直接运行lmbench,此时要很多项要手动填写,不过大部分用默认即可。但建议测试的内存不要选太大,否则系统空间就不够,如果内存很大,可以用512MB或1024MB,不要用默认的那个值就行。最后,像mail这些,直接输入no就行了。运行时间也是挺久的,测试结果后,有提示说结果文件存放在哪个目录,到那个目录下拿就行了。
不过我发现,直接安装的lmbench,并没有单独测试某一种性能的工具,而且运行时间也久,于是在网找上了源码,地址为:http://sourceforge.net/projects/lmbench/files/latest/download,很久以前,很多外国网站都访问不了,只能自己想办法找代理去下载了。下载后,直接解压,输入make即可。会生成很多不同的测试工具,每一个都可以单独来测试,时间节省不了。——我实在不想只测试一内存性能的时候,让工具测试一堆的CPU、硬盘、网络的带宽。

参考:
http://blog.yufeng.info/archives/1511

PS:对于intel网站的那个工具,下载要注册,而且文件十分庞大,还有图形界面,功能当然也十分强大,但我不想只测试一点东西就搞那么多的东西,因而只好放弃了。

李迟,于2014年10月21日中午,发表前好几天已写好文章

Linux内存带宽的一些测试笔记的更多相关文章

  1. Linux内存带宽的一些测试笔记【转】

    转自:https://blog.csdn.net/subfate/article/details/40343497 版权声明:本文为迟思堂主人李迟原创文章,版权所有.可随便任意使用(包括学习研究商用) ...

  2. Linux内核设计与实现 读书笔记 转

    Linux内核设计与实现  读书笔记: http://www.cnblogs.com/wang_yb/tag/linux-kernel/ <深入理解LINUX内存管理> http://bl ...

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

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

  4. Linux内存管理学习笔记 转

    https://yq.aliyun.com/articles/11192?spm=0.0.0.0.hq1MsD 随着要维护的服务器增多,遇到的各种稀奇古怪的问题也会增多,要想彻底解决这些“小”问题往往 ...

  5. 《嵌入式Linux内存使用与性能优化》笔记

    这本书有两个关切点:系统内存(用户层)和性能优化. 这本书和Brendan Gregg的<Systems Performance>相比,无论是技术层次还是更高的理论都有较大差距.但是这不影 ...

  6. Linux内存压力测试stressapptest

    /********************************************************************** * Linux内存压力测试stressapptest * ...

  7. Linux内存压力测试-memtester工具

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  8. MySQL 调优基础(二) Linux内存管理

    进程的运行,必须使用内存.下图是Linux中进程中的内存的分布图: 其中最重要的 heap segment 和 stack segment.其它内存段基本是大小固定的.注意stack是向低地址增长的, ...

  9. Linux内存模型

    http://blog.csdn.net/sunyubo458/article/details/6090946 了解linux的内存模型,或许不能让你大幅度提高编程能力,但是作为一个基本知识点应该熟悉 ...

随机推荐

  1. 华为联运游戏或应用审核驳回:HMS Core升级提示语言类型错误

    问题描述 最近项目组应用集成华为的HMS Core SDK相关能力后,发布地区选择中国大陆,提交审核,华为审核驳回:在低于2.5.3版本的华为移动服务手机上启动时或调出支付时拉起升级提示为英文,正确的 ...

  2. Day05_19_方法回顾

    方法回顾 * 静态方法 和 非静态方法 1.静态方法属于类所有,类实例化前即可使用: 2.非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员: 3.因为静态方法会在类加载的时候就进行初始 ...

  3. 开坑:mysql相关问题

    一. 先过滤后连表和先连表后在mysql中选择的哪一种? 二. left join 和inner join使用场景有什么区别? 三. 第二个问题的衍生问题:left join中where 条件使用对n ...

  4. java面试一日一题:mysql中的自增主键

    问题:请讲下mysql中的自增主键 分析:该问题主要考察对mysql中自增主键的掌握,使用场景及如何设置 回答要点: 主要从以下几点去考虑 1.什么自增主键 2.使用场景是什么: 3.innodb_a ...

  5. 华中科大MOOC 操作系统原理讨论题

    1没有安装操作系统的计算机启动过程和结果? 启动会比较快,但功能很局限,无法使用常见的软件应用,对于普通用户来说,功能很局限,对于专业工程师来说,想使用没有操作系统的计算机也有难度.启动后进入 BIO ...

  6. SpringIOE-以xml方式实现

    SpringIOC框架简单实现 简单介绍 依赖注入( Dependency Injection ,简称 DI) 与控制反转 (IoC) 的含义相同,只不过这两个称呼是从两个角度描述的同一个概念,具体如 ...

  7. input 的各种属性的验证 checkValidity兼容性

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  8. hdu1261 JAVA

    题意: 一个A和两个B一共可以组成三种字符串:"ABB","BAB","BBA".给定若干字母和它们相应的个数,计算一共可以组成多少个不同的 ...

  9. 路由选择协议(RIP/OSPF)

    目录 IGP RIP协议 OSPF协议 IS-IS协议 EIGRP协议 EGP BGP 我们可能会想,在偌大的网络中,我们是如何跟其他人通信的呢?我们是如何跟远在太平洋对面的美国小伙伴对话的呢? 这就 ...

  10. React-条件渲染

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...