当前位置: 首页 > article >正文

内存测试指标和工具

1.dmidecode作用把系统BIOS中的硬件信息提取出来使用方法dmidecode | grep Configured Memory Speed这个示例用于查看内存实际频率内存实际频率代表了内存处理数据的速度实际项目中会告诉你测试1DPC还是2DPC这里的DPCDIMM(s) Per Channel代表的是CPU中的IMCIntegrated Memory Controller集成内存控制器延伸出来的总线上插几根内存条2.mlc内存延迟检测器测量内存延迟空闲延迟在系统没有负载时访问内存的最快速度加载延迟在内存带宽被逐渐占满的情况下延迟是如何增加的。这能反映系统在高压力下的稳定性测量内存带宽即单位时间内传输的数据量环境搭建下载mlc工具./mlc mlc_snc_test.log日志输出测试空闲延时Measuring idle latencies for sequential access (in ns)... Numa node Numa node 0 1 0 120.3 147.0 1 137.9 120.4这个测试的是在空闲状态下不同节点的CPU连续读取不同节点内存中数据的延迟时间单位是ns测试峰值带宽Measuring Peak Injection Memory Bandwidths for the system Bandwidths are in MB/sec (1 MB/sec 1,000,000 Bytes/sec) Using all the threads from each core if Hyper-threading is enabled Using traffic with the following read-write ratios ALL Reads : 379143.9 3:1 Reads-Writes : 325338.0 2:1 Reads-Writes : 313722.6 1:1 Reads-Writes : 308136.8 Stream-triad like: 315334.9 All NT writes : 293041.7 1:1 Read-NT write: 301390.1这是在各种读写组合下测试系统能跑出的极限数据量单位MB/sec。这种方式的测试MLC 会命令所有的 CPU 核心同时向自己本地的内存控制器发起疯狂的读写请求。最后输出的结果是全系统的峰值带宽测试极限内存带宽Measuring Memory Bandwidths between nodes within system Bandwidths are in MB/sec (1 MB/sec 1,000,000 Bytes/sec) Using all the threads from each core if Hyper-threading is enabled Using Read-only traffic type Numa node Numa node 0 1 0 189298.1 189711.3 1 189472.2 189588.3这是测试不同节点在极限满负载状态下时CPU读取各个节点内存时的带宽测试负载延迟Measuring Loaded Latencies for the system Using all the threads from each core if Hyper-threading is enabled Using Read-only traffic type Inject Latency Bandwidth Delay (ns) MB/sec 00000 377.93 377594.6 00002 400.58 379020.5 00008 399.81 378989.4 00015 383.97 378821.7 00050 287.89 374683.6 00100 250.89 363595.3 00200 213.68 347540.1 00300 190.41 263701.6 00400 181.01 216367.5 00500 170.79 185032.9 00700 148.27 136411.5 01000 135.84 97726.8 01300 130.50 76133.7 01700 126.76 58842.1 02500 124.18 40543.5 03500 123.06 29268.1 05000 122.44 20727.9 09000 121.85 11798.5 20000 121.16 5449.7模拟了随着吞吐量即带宽的增加延迟是如何增加的测试跨核心的缓存对等输出Measuring cache-to-cache transfer latency (in ns)... Local Socket L2-L2 HIT latency 80.6 # 核心A直接从核心B的L2缓存里拿到了干净的数据 Local Socket L2-L2 HITM latency 81.1 # 核心A拿到了核心B修改过Modified的数据涉及缓存一致性协议测量单个CPU核心之间传递数据所耗的延迟这里命令行没加参数默认是CPU0的3. lmbench作用通过测量系统执行基础操作的延迟和带宽来量化评估操作系统内核与底层硬件协同工作的极限性能与基础开销环境搭建# 解压并进入源码目录 tar -zxvf lmbench-3.0-a9.tgz cd lmbench-3.0-a9/src # 删除所有代码中对不存在的 rpc/rpc.h 的引用 sed -i /#include rpc\/rpc.h/d *.c *.h # 执行编译忽略最后的报错,确保 ../bin/x86_64-linux-gnu/lmbench.a 这个文件已经产生它是所有工具的母体。 make results # 删除 bench.h 中重复的 socklen_t 定义 sed -i /typedef int socklen_t;/d bench.h # 手动组装包含计时、内存、结果处理等模块并链接数学库 gcc -O -DHAVE_socklen_t -o ../bin/x86_64-linux-gnu/lat_mem_rd \ lat_mem_rd.c ../bin/x86_64-linux-gnu/lmbench.a -lmlat_mem_rd作用测量CPU中的缓存L1/L2/L3和主内存的真实容量与响应速度使用方法numactl -m 0 -N 0 ./lat_mem_rd -P 1 -N 3 2048M 1024 # -m 0 : 强制将内存分配锁定在 NUMA 节点 0 上 # -N 0 : 强制将执行程序的进程锁定在 NUMA 节点 0 的 CPU 核心上 # -P 1 : 设置并发数用来模拟高并发压力的场景 # -N 3 : 设置重复次数为3 # 2048M : 测试的数据块规模为2048M # 1024 : 步长为1024Byte日志输出stride1024 0.00098 1.390 0.00195 1.390 0.00293 1.390 0.00391 1.390 0.00586 1.390 0.00781 1.390 0.01172 1.390 0.01562 1.390 0.02344 1.390 0.03125 1.390 0.04688 1.699 0.06250 3.117 0.09375 1.754 0.12500 4.448 0.18750 4.448 0.25000 4.448 0.37500 4.448 0.50000 4.447 0.75000 4.448 1.00000 4.448 1.50000 4.448 2.00000 5.048 3.00000 31.986 4.00000 34.494 6.00000 32.341 8.00000 33.517 12.00000 33.021 16.00000 33.152 24.00000 32.050 32.00000 34.090 48.00000 33.797 64.00000 33.154 96.00000 34.172 128.00000 22.547 192.00000 49.937 256.00000 68.443 384.00000 79.057 512.00000 74.141 768.00000 54.388 1024.00000 43.767 1536.00000 46.355 2048.00000 44.476bw_mem作用测试CPU 核心在遵循标准体系结构规则下通过多级缓存与内存进行交互时的真实吞吐能力带宽与mlc的不同相比bw_memmlc测试则是跳过了CPU的缓存(L1/L2/L3)测试的是主板、内存控制器IMC和物理内存条之间的吞吐能力带宽使用方法numactl -m 0 -N 0 ./bw_mem -P 1 -N 3 1024M rd numactl -m 1 -N 0 ./bw_mem -P 1 -N 3 1024M rd # 1024M : 测试的数据块大小为 1024 MB # rd : 操作类型为Read(纯读),其他常见类型:wr(写)、cp(复制)、rdwr(混合读写)日志输出# 可以看出节点0的CPU读取节点0的内存中数据比跨节点要快 1024.00 22633.34 1024.00 15589.794.sysbench作用可以给 CPU、内存、磁盘 IO 甚至数据库加上沉重的负载观察系统在“高压状态”下的稳定性CPU 运算性能磁盘 IO 性能调度程序性能内存分配及传输速度主要侧重在经过操作系统内存分配、C标准库以及多线程调度的开销后应用层能实际获得的可用带宽POSIX 线程性能–互斥基准测试数据库性能(OLTP 基准测试)环境搭建./autogen.sh ./configure --without-mysql make -j make install sysbench --version使用方法numactl -N 0 -m 0 sysbench memory --memory-block-size16K --memory-scopelocal --memory-total-size100G --memory-access-modernd run # memory : 测试的模块 # --memory-block-size : 测试内存块大小 # --memory-scope : 内存作用域 # --memory-total-size : 测试数据的总大小 # --memory-access-mode : 访问模式 # run : 正式开始执行测试日志输出sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3) Running the test with following options: Number of threads: 1 Initializing random number generator from current time # 配置验证 Running memory speed test with the following options: block size: 16KiB total size: 102400MiB operation: write scope: local Initializing worker threads... Threads started! Total operations: 2120337 (212033.17 per second) # 操作吞吐量 33130.27 MiB transferred (3313.02 MiB/sec) # 带宽吞吐量 Throughput: events/s (eps): 212033.1678 time elapsed: 10.0000s total number of events: 2120337 # 延迟统计 Latency (ms): min: 0.00 avg: 0.00 max: 0.01 95th percentile: 0.00 sum: 9794.14 Threads fairness: events (avg/stddev): 2120337.0000/0.00 execution time (avg/stddev): 9.7941/0.005. stream作用专门测量计算机的内存带宽的极限测试和mlc的区别也是绕过CPU的缓存但和mlc不同的地方在于mlc是物理绕过缓存L1/L2/L3通过指令明确告诉硬件直接写到IMC中。而stream则是申请一块至少是L3缓存4倍的数组这样数据就自然存储到主内存中使用方法gcc -O stream.c -DSTREAM_ARRAY_SIZE200000000 -DNTIMES30 -mcmodelmedium -o stream.o numactl -m 0 -N 0 ./stream.o 20输出日志------------------------------------------------------------- STREAM version $Revision: 5.10 $ ------------------------------------------------------------- This system uses 8 bytes per array element. ------------------------------------------------------------- Array size 200000000 (elements), Offset 0 (elements) Memory per array 1525.9 MiB ( 1.5 GiB). Total memory required 4577.6 MiB ( 4.5 GiB). Each kernel will be executed 30 times. The *best* time for each kernel (excluding the first iteration) will be used to compute the reported bandwidth. ------------------------------------------------------------- Your clock granularity/precision appears to be 1 microseconds. Each test below will take on the order of 140319 microseconds. ( 140319 clock ticks) Increase the size of the arrays if this shows that you are not getting at least 20 clock ticks per test. ------------------------------------------------------------- WARNING -- The above is only a rough guideline. For best results, please be sure you know the precision of your system timer. ------------------------------------------------------------- # 不同操作的峰值带宽 Function Best Rate MB/s Avg time Min time Max time Copy: 23597.3 0.135865 0.135609 0.136305 Scale: 21441.3 0.149674 0.149245 0.150994 Add: 25256.7 0.190642 0.190049 0.194377 Triad: 25042.1 0.192444 0.191677 0.193558 ------------------------------------------------------------- Solution Validates: avg error less than 1.000000e-13 on all three arrays -------------------------------------------------------------

相关文章:

内存测试指标和工具

1.dmidecode作用:把系统BIOS中的硬件信息提取出来使用方法dmidecode | grep "Configured Memory Speed"这个示例用于查看内存实际频率,内存实际频率代表了内存处理数据的速度实际项目中会告诉你测试1DPC还是2DPC,这里的DPC&#xf…...

Spring IOC 源码学习 事务相关的 BeanDefinition 解析过程 (XML)感

从0构建WAV文件:读懂计算机文件的本质 虽然接触计算机有一段时间了,但是我的视野一直局限于一个较小的范围之内,往往只能看到于算法竞赛相关的内容,计算机各种文件在我看来十分复杂,认为构建他们并能达到目的是一件困难…...

这是我的第一篇文章

以后将会发布一些有关我Java的学习过程...

从零开始掌握时序逻辑电路:状态机设计与FPGA实战解析

1. 时序逻辑电路基础入门 第一次接触时序逻辑电路时,我盯着教科书上的波形图发呆了半小时。直到在实验室用FPGA开发板亲眼看到LED灯随着时钟信号有规律地闪烁,才真正理解这个抽象概念。时序逻辑电路和组合逻辑电路最大的区别,就像音乐会现场和…...

手把手教你用GPT-oss:20b:CSDN平台图文教程,小白也能快速部署

手把手教你用GPT-oss:20b:CSDN平台图文教程,小白也能快速部署 想体验接近GPT-4级别的智能对话,但又担心数据隐私、网络延迟或持续付费?今天,我将带你通过CSDN平台,在几分钟内免费部署一个完全开源、本地运…...

Harness Engineering(驾驭工程)-2026年最强的智能体-周红伟

AI 模型已经能写出 100 万行代码。真正的挑战不再是让它写得更好,而是怎么驾驭它稳定、可靠、不失控地工作。这套围绕 AI 智能体构建约束、反馈与控制系统的方法论,就是 2026 年初迅速席卷工程圈的新范式——Harness Engineering(驾驭工程&am…...

提示词工程(Prompt Engineering)-周红伟

你有没有遇到过这种情况:明明给了 AI 一个问题,得到的回答却空泛、跑题、毫无用处? 这不是 AI 的问题,往往是提问方式的问题。 提示词工程(Prompt Engineering)就是一门关于如何构造和精炼你的提示词的艺术…...

Rustup进阶指南:5个高效管理Rust工具链的实战技巧

Rustup进阶指南:5个高效管理Rust工具链的实战技巧 【免费下载链接】rustup The Rust toolchain installer 项目地址: https://gitcode.com/gh_mirrors/ru/rustup Rustup作为Rust官方工具链安装器,让开发者能够轻松管理多个Rust版本、切换发布渠道…...

AIMP(音乐播放软件)

AIMP是一款免费的音频播放器,支持多种音频格式,包括MP3、OGG、FLAC、WAV、AAC等。它具有简洁的界面和强大的功能,是一款非常受欢迎的音频播放器。 软件功能 1. 支持多种音频格式,包括MP3、OGG、FLAC、WAV、AAC等。 2. 支持自动歌…...

200+技术改进实现环世界400%帧率提升的架构解析

200技术改进实现环世界400%帧率提升的架构解析 【免费下载链接】Performance-Fish Performance Mod for RimWorld 项目地址: https://gitcode.com/gh_mirrors/pe/Performance-Fish 随着殖民地规模扩大,《环世界》玩家常面临严重的性能瓶颈问题。游戏在后期处…...

Notepad--完全指南:掌握跨平台国产文本编辑器的3个实用技巧

Notepad--完全指南:掌握跨平台国产文本编辑器的3个实用技巧 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad-- …...

大卫小东(Sheldon)唾

Issue 概述 先来看看提交这个 Issue 的作者是为什么想到这个点子的,以及他初步的核心设计概念。?? 本 PR 实现了 Apache Gravitino 与 SeaTunnel 的集成,将其作为非关系型连接器的外部元数据服务。通过 Gravitino 的 REST API 自动获取表结构和元数据&…...

防静电门禁(ESD 闸机)系统深度技术方案:原理、硬件、接线、调试、故障排查

本文从硬件原理、电气接口、通信协议、联动逻辑、调试步骤、故障树六个维度,完整拆解防静电门禁闸机系统(ESD) 的技术实现与工程落地,内容适用于:电子 / 半导体车间 EHS、设备、IE 工程师智能化工程、安防系统 集成商 …...

Apache Solr 详解:企业级搜索平台的核心特性与架构

Apache Solr 详解:企业级搜索平台的核心特性与架构 文章目录 Apache Solr 详解:企业级搜索平台的核心特性与架构1. 核心功能2. 核心概念与架构2.1 关键术语2.2 工作流程 3. Solr vs. Elasticsearch4. 典型应用场景5. 快速入门与资源5.1 安装准备5.2 启动…...

GetQzonehistory:让QQ空间记忆不再“云端漂浮”,你的青春值得永久保存

GetQzonehistory:让QQ空间记忆不再“云端漂浮”,你的青春值得永久保存 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还记得那些深夜发的说说、毕业时的感慨、旅…...

CentOS 7.9源码编译glibc 2.28:从“cannot find -lnss_test2”报错到成功部署的实战复盘

1. 问题背景与复现 最近在CentOS 7.9系统上源码编译glibc 2.28时,遇到了一个让人头疼的报错:/usr/bin/ld: cannot find -lnss_test2。这个错误发生在编译的最后阶段,直接导致安装失败。作为一个长期和Linux系统打交道的老手,我决定…...

零基础转行大模型选哪个岗位方向最易上手?常见问题全解析

零基础转行大模型选哪个岗位方向最易上手?常见问题全解析 标签:#人工智能、#深度学习、#自然语言处理、#神经网络、#机器学习、#计算机视觉、#ai ### 先打破一个误区:大模型≠只有算法岗,普通人也能进### 大模型岗位:哪…...

AIAgent响应延迟超800ms?SITS2026案例实测:4步将LCEL流水线性能提升6.8倍(附压测对比数据)

第一章:SITS2026案例:AIAgent个人助理开发 2026奇点智能技术大会(https://ml-summit.org) SITS2026(Smart Intelligence Technology Showcase 2026)是面向下一代AI原生应用的标杆性实践平台,其中“AIAgent个人助理”…...

非计算机专业转AI Agent:补哪些基础最有效

【本段核心】现在很多大学生都有转AI的想法,但每天做的却是收藏一堆教程、刷一堆概念、看一堆“LLM 从入门到精通”,然后继续焦虑、继续拖沓、继续投简历没回音。我就是双非野鸡二本经济学转Agent的,成效把 Agent 这条路跑通之后,…...

FirPE 维护系统 v2.1.0

FirPE 是一款系统预安装环境(Windows PE),它具有简约、易操作等特点,使用起来十分人性化。以U盘作为使用载体,空间更为充分,携带更为方便。同时整合各种装机必备工具,有效提高系统安装效率。Fir…...

FreeRTOS队列实战:uxQueueMessagesWaiting在UART中断中的那些坑

FreeRTOS队列深度解析:UART中断中的uxQueueMessagesWaiting陷阱与实战对策 在嵌入式开发中,UART通信与FreeRTOS队列的结合使用堪称经典组合,但正是这种看似简单的组合,却暗藏诸多玄机。我曾在一个工业传感器采集项目中&#xff0c…...

3步解锁B站专业直播:告别直播姬限制的终极方案

3步解锁B站专业直播:告别直播姬限制的终极方案 【免费下载链接】bilibili_live_stream_code 用于在准备直播时获取第三方推流码,以便可以绕开哔哩哔哩直播姬,直接在如OBS等软件中进行直播,软件同时提供定义直播分区和标题功能 项…...

Nebula Console深度解析:高效管理图数据库的核心技巧与实战指南

Nebula Console深度解析:高效管理图数据库的核心技巧与实战指南 【免费下载链接】nebula-console Command line interface for the Nebula Graph service 项目地址: https://gitcode.com/gh_mirrors/ne/nebula-console Nebula Console作为NebulaGraph图数据库…...

基于VScode的安装——MinGW的介绍和安装

1、MinGW介绍 MinGW开源免费,是Windows上的GNU编译工具链,核心是把GCC编译器移植到Windows。主要作用是在Windows上用GCC编译C/C等编程语言,直接生成原生Windows .exe可执行文件,只依赖Windows自带的MSVCRT系统库,不依…...

3步实现Chrome浏览器与KeePass密码库无缝同步

3步实现Chrome浏览器与KeePass密码库无缝同步 【免费下载链接】ChromeKeePass Chrome extensions for automatically filling credentials from KeePass/KeeWeb 项目地址: https://gitcode.com/gh_mirrors/ch/ChromeKeePass 你是否厌倦了每次登录网站都要手动输入密码&a…...

B站资源下载终极指南:跨平台BiliTools使用全攻略

B站资源下载终极指南:跨平台BiliTools使用全攻略 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 还在为…...

KP09 Encoder使用教程

注意:请不要同时将两个typec口接入数据线。 2026.3.22更新 汉化版VIAL改键软件,链接:VIAL汉化版——VIAL-JL – yoonas blog 2026.3.23更新 组合键设置 默认功能 1、默认键位 键盘有九个按键,两个旋钮,旋钮可以按下。上…...

CentOS 7 下DNF安装与常见报错解决方案

1. 为什么要在CentOS 7上安装DNF? 很多刚接触CentOS 7的开发者可能会疑惑:系统自带的yum包管理器用得好好的,为什么还要折腾DNF?这个问题我也曾经纠结过。经过实际使用对比,我发现DNF确实有不少优势。 首先&#xff0c…...

从 219 秒到 1.3 秒!CausVid:首个媲美双向扩散的流式视频生成模型深度解析

前言 你是否有过这样的经历:输入一段文本生成视频,盯着屏幕等了 3 分多钟才看到结果?这就是传统双向视频扩散模型的致命痛点 —— 生成 128 帧视频需要 219 秒,且必须等全部内容生成完毕才能观看,更别提中途修改提示词…...

Jvppeteer终极指南:Java开发者如何快速掌握浏览器自动化

Jvppeteer终极指南:Java开发者如何快速掌握浏览器自动化 【免费下载链接】jvppeteer Java API For Chrome and Firefox 项目地址: https://gitcode.com/gh_mirrors/jv/jvppeteer 你是否曾为Java项目中的网页自动化测试、数据抓取或性能分析而烦恼&#xff1f…...