memory - 如何从 shell 计算给定(Linux)系统上的内存带宽?
问题描述
我想编写一个 shell 脚本/命令,它使用常用的二进制文件、文件/sys
系统或其他工具来计算给定机器上可用 RAM 的理论最大带宽。
笔记:
- 我不关心延迟,只关心带宽。
- 我对缓存的影响(例如 CPU 的最后一级缓存)不感兴趣,但对从 RAM 正确读取的带宽感兴趣。
- 如果有帮助,您可以假设一个“普通”英特尔平台,并且所有内存 DIMM 都是相同的;但我宁愿你不要做这个假设。
- 如果有帮助,您可以依赖 root 权限(例如使用
sudo
)
解决方案
@einpoklum 你应该看看https://github.com/opcm/pcm上提供的性能计数器监视器。它将为您提供所需的测量值。不知道是否支持内核2.6.32
或者,您还应该检查 Intel 的 EMON 工具,该工具承诺支持早至 2.6.32 的内核。用户指南列在https://software.intel.com/en-us/download/emon-user-guide,这意味着它可以在英特尔软件论坛的某个地方下载。
推荐阅读
- java - Spring:数组属性的默认值
- google-chrome - 无法清除浏览器缓存
- java - 在休眠条件中使用 sum
- opencv - 如何使用 protobuf 序列化 cv::Mat 对象?
- java - 从 SSRS 调用 url 时在 java web 上进行身份验证
- html - 如果存在 div,则两个 HTML 表格的对齐问题
- r - 如何使用字符串向量在 R 中使用 dplyr mutate 进行字符串匹配
- grapesjs - 使用 GrapesJs API 存储管理器的自定义 StorageManager
- android - 搜索视图输入文本颜色
- java - JavaFX 应用程序上的视频颜色错误(Gluon JavaFX 端口)