Linux内存带宽的一些测试笔记
Linux内存带宽的一些测试笔记
最近要测一下设备的内存性能,于是找了些资料,用了些工具,写了些笔记。那个设备是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 |
#!/bin/bash |
如./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内存带宽的一些测试笔记的更多相关文章
- Linux内存带宽的一些测试笔记【转】
转自:https://blog.csdn.net/subfate/article/details/40343497 版权声明:本文为迟思堂主人李迟原创文章,版权所有.可随便任意使用(包括学习研究商用) ...
- Linux内核设计与实现 读书笔记 转
Linux内核设计与实现 读书笔记: http://www.cnblogs.com/wang_yb/tag/linux-kernel/ <深入理解LINUX内存管理> http://bl ...
- Linux系统性能测试工具(一)——内存带宽测试工具mbw
本文介绍关于Linux系统(适用于centos/ubuntu等)的内存带宽测试工具-mbw.内存性能测试工具包括: 内存带宽测试工具——mbw: 内存压力测试工具——memtester: 内存综合性能 ...
- Linux内存管理学习笔记 转
https://yq.aliyun.com/articles/11192?spm=0.0.0.0.hq1MsD 随着要维护的服务器增多,遇到的各种稀奇古怪的问题也会增多,要想彻底解决这些“小”问题往往 ...
- 《嵌入式Linux内存使用与性能优化》笔记
这本书有两个关切点:系统内存(用户层)和性能优化. 这本书和Brendan Gregg的<Systems Performance>相比,无论是技术层次还是更高的理论都有较大差距.但是这不影 ...
- Linux内存压力测试stressapptest
/********************************************************************** * Linux内存压力测试stressapptest * ...
- Linux内存压力测试-memtester工具
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- MySQL 调优基础(二) Linux内存管理
进程的运行,必须使用内存.下图是Linux中进程中的内存的分布图: 其中最重要的 heap segment 和 stack segment.其它内存段基本是大小固定的.注意stack是向低地址增长的, ...
- Linux内存模型
http://blog.csdn.net/sunyubo458/article/details/6090946 了解linux的内存模型,或许不能让你大幅度提高编程能力,但是作为一个基本知识点应该熟悉 ...
随机推荐
- .NET Core3.1 Dotnetty实战系列视频
一.概要 由于在.net的环境当中对dotnetty相关资料相对较少,所以这里主要分享一个dotnetty使用教程希望能帮助到正在使用这套框架的开发者们.虽然这套框架已微软官方已经不在维护,但是这套框 ...
- Java常用类库与技巧
Java异常 异常处理机制主要回答了三个问题 What:异常类型回答了什么被抛出 Where:异常堆栈跟踪回答了在哪抛出 Why:异常信息回答了为什么被抛出 Java的异常体系
- Spring Security OAuth2 实现登录互踢
背景说明 一个账号只能一处登录,类似的业务需求在现有后管类系统是非常常见的. 但在原有的 spring security oauth2 令牌方法流程(所谓的登录)无法满足类似的需求. 我们先来看 To ...
- 黑马架构师v2.5.1 (codeUtil)使用注意事项
资源 1.资料里的codeutil软件有问题,使用时部分类和接口文件名后有一串日期数字等.码云的没问题 2.生成代码后zookeeper的IP改为本机的
- 关于Green AI
上一篇文章提到了模型不环保这个话题.这篇文章就这个问题展开唠叨一下. 自从BERT, GPT此类的大型模型诞生以来,小作坊们除了把pre-trained的模型拿过来微调一下,就束手无策了,因为成本实在 ...
- 【笔记】《Redis设计与实现》chapter21 排序
chapter21 排序 21.1 SORT<key> 命令的实现 // 用于保存被排序值及其权重的结构 typedef struct _redisSortObject { // 被排序键 ...
- JavaFX+SpringBoot+验证码功能的小型薪酬管理系统
2020.07.22更新 1 概述 1.1 简介 一个简单的小型薪酬管理系统,前端JavaFX+后端Spring Boot,功能倒没多少,主要精力放在了UI和前端的一些逻辑上面,后端其实做得很简单. ...
- java中的|=符号
今天看mybaits源码的时候,发现了这个特殊的符号用法,|=. for (ParameterMapping pm : boundSql.getParameterMappings()) { Strin ...
- Spring Boot 轻量替代框架 Solon 1.3.29 发布
Solon 是一个微型的Java开发框架.项目2018年启动,参考过大量前人作品:内核0.1m的身材,超高的跑分,以及良好的使用体验.支持:RPC.REST API.MVC.WebSocket.Soc ...
- MyBatisPlus入门学习
目录 MyBatisPlus 概述 快速入门 配置日志输出 CRUD拓展 插入 主键生成策略 更新操作 自动填充 乐观锁 查询操作 分页查询 删除操作 逻辑删除 性能分析插件 条件构造器 代码自动生成 ...