首页 > 其他分享 >bw_mem 和 lmbench

bw_mem 和 lmbench

时间:2024-07-16 20:30:14浏览次数:9  
标签:lmbench mem 基准 测量 bw 内存 lat


一、bwmem

名称

bw_mem - 时间内存带宽

概要

bw_mem_cp [ -P <并行度> ] [ -W <热身次数> ] [ -N <重复次数> ] 大小 rd|wr|rdwr|cp|fwr|frd|bzero|bcopy [对齐]

描述

bw_mem 分配两倍指定内存量,将其归零,然后将前半部分复制到后半部分。将每秒移动的兆字节数作为结果进行报告。
大小规范可能以“k”或“m”结尾,表示千字节 (* 1024) 或兆字节 (* 1024 * 1024)。

输出

输出格式为 CB"%0.2f %.2f\n", 兆字节,兆字节每秒,即
8.00 25.33

bw_mem 中有九种不同的内存基准。它们各自测量读取、写入或复制数据的方法略有不同。

rd
测量将数据读入处理器的时间。它计算整数值数组的总和。它每次访问四个字。

wr
测量将数据写入内存的时间。它为整数值数组的每个内存分配一个常量值。它每次访问四个字。

rdwr
测量将数据读入内存然后将数据写入同一内​​存位置的时间。对于数组中的每个元素,它将当前值添加到运行总和中,然后再为元素分配新的(常量)值。它每次访问四个字。

cp
测量将数据从一个位置复制到另一个位置的时间。它执行数组复制:dest[i] = source[i]。它每次访问四个字。

frd
测量将数据读入处理器的时间。它计算整数值数组的总和。

fwr
测量将数据写入内存的时间。它为整数值数组的每个内存分配一个常量值。

fcp
测量将数据从一个位置复制到另一个位置的时间。它执行数组复制:dest[i] = source[i]。

bzero
测量系统清零内存的速度。

bcopy
测量系统复制数据的速度。


内存利用率

此基准测试最多可将请求的内存移动三倍。Bcopy 将使用 2-3 倍的内存带宽:从源读取一次,然后写入目标。写入通常会导致缓存行读取,然后在稍后的某个时间点写回缓存行。如果处理器架构实现了“加载缓存行”和“存储缓存行”指令(以及“getcachelinesize”),内存利用率可能会减少 1/3。


二、lmbench

代码:https://github.com/intel/lmbench.git

翻译:https://lmbench.sourceforge.net/man/lmbench.8.html

名称

lmbench - 系统基准测试


描述

lmbench 是一系列微基准测试,旨在测量基本操作系统和硬件系统指标。基准测试分为三大类:带宽、延迟和“其他”。

大多数 lmbench 基准测试都使用 timing(3) 中描述的标准计时工具,并具有一些标准选项:并行性、预热和重复。并行性指定要并行运行的基准测试进程数。这主要在测量 SMP 或分布式计算机的性能时有用,并可用于评估系统的性能可扩展性。预热是基准测试在开始测量性能之前应执行基准测试功能的最小微秒数。同样,这主要对 SMP 或分布式系统有用,旨在为进程调度程序提供“稳定”时间并将进程迁移到其他处理器的时间。通过测量不同预热期内的性能,用户可以评估调度程序的响应能力。重复是基准测试应进行的测量次数。这允许 lmbench 为其报告的结果提供更大或更小的统计强度。默认重复次数为 11。


带宽测量

数据迁移是大多数计算机系统性能的基础。带宽测量旨在显示系统如何移动数据。可以比较带宽指标的结果,但必须注意了解正在比较的内容。带宽基准可以归结为两个主要组成部分:操作系统开销和内存速度。带宽基准以每秒移动的兆字节数报告其结果,但请注意,移动的数据不一定与用于移动数据的内存带宽相同。有关更多信息,请参阅各个手册页。

下面列出了每个带宽基准,并简要概述了基准的目的。

bw_file_rd
通过 read(2) 接口读取和汇总文件。

bw_mem_cp
内存复制。

bw_mem_rd
内存读取和汇总。

bw_mem_wr
内存写入。

bw_mmap_rd
通过内存映射 mmap(2) 接口读取和汇总文件。

bw_pipe
通过管道读取数据。

bw_tcp
通过 TCP/IP 套接字读取数据。

bw_unix
从 UNIX 套接字读取数据。


延迟测量

控制消息也是大多数计算机系统性能的基础。延迟测量旨在显示系统可以多快地被指示执行某些操作。延迟指标的结果大部分可以相互比较。特别是,pipe、rpc、tcp 和 udp 事务都是在不同系统抽象上执行的相同基准。

此处的延迟数字应主要以每个操作的微秒为单位。

lat_connect
建立 TCP/IP 连接所需的时间。

lat_ctx
上下文切换;进程的数量和大小各不相同。

lat_fcntl
fcntl 文件锁定。

lat_fifo
通过 UNIX FIFO 的“热土豆”事务。

lat_fs
创建和删除小文件。

lat_pagefault
从文件中将页面错误所需的时间。

lat_mem_rd
内存读取延迟(精确到 ~2-5 纳秒范围,以纳秒为单位报告)。

lat_mmap
设置内存映射的时间。

lat_ops
基本处理器操作,例如整数 XOR、ADD、SUB、MUL、DIV 和 MOD,以及浮点 ADD、MUL、DIV 和双精度 ADD、MUL、DIV。

lat_pipe
通过 Unix 管道的“热土豆”事务。

lat_proc
进程创建时间(各种类型)。

lat_rpc
通过 UDP 或 TCP 上的 Sun RPC 进行的“热土豆”事务。

lat_select
选择延迟

lat_sig
信号安装和捕获延迟。还有保护故障信号延迟。

lat_syscall
进入系统的非平凡入口。

lat_tcp
通过 TCP 进行的“热土豆”事务。

lat_udp
通过 UDP 进行的“热土豆”事务。

lat_unix
通过 UNIX 套接字进行的“热土豆”事务。

lat_unix_connect
建立 UNIX 套接字连接所需的时间。


其他测量

mhz
处理器周期时间

tlb
TLB 大小和 TLB 未命中延迟

line
缓存行大小(以字节为单位)

cache
缓存统计信息,例如行大小、缓存大小、内存并行性。

stream
John McCalpin 的流基准

par_mem
内存子系统并行性。内存子系统可以并行服务多少个请求,这可能取决于数据在内存层次结构中的位置。

par_ops
基本处理器操作并行性。


也可以看看

bargraph(1) , graph(1) , lmbench(3) , results(3) , timing(3) , bw_file_rd(8) , bw_mem_cp(8) , bw_mem_wr(8) , bw_mmap_rd(8) , bw_pipe(8) , bw_tcp(8) , bw_unix(8) , lat_connect(8) , lat_ctx(8) , lat_fcntl(8) , lat_fifo(8) , lat_fs(8) , lat_http(8) , lat_mem_rd(8) , lat_mmap(8) , lat_ops(8) , lat_pagefault(8) , lat_pipe(8) , lat_proc(8) , lat_rpc(8) , lat_select(8) , lat_sig(8) , lat_syscall(8) , lat_tcp(8) , lat_udp(8) , lmdd(8) , par_ops(8) , par_mem(8) , mhz(8) , tlb(8) , line(8) , cache(8) , stream(8)

 

标签:lmbench,mem,基准,测量,bw,内存,lat
From: https://www.cnblogs.com/hellokitty2/p/18306042

相关文章

  • Memcached:高性能内存缓存系统详解及实战
    引言在高并发的Web应用中,数据库往往成为性能瓶颈。为了提高数据读取速度和减少数据库负载,引入缓存机制变得至关重要。Memcached正是这样一款高性能、分布式内存对象缓存系统,它通过在内存中缓存数据来加速动态Web应用,从而极大地改善用户体验。本文将深入探讨Memcached的工作原......
  • Fatal error: Call to a member function read() on a non-object in 错误解决方法(织
    大家都说这是因为织梦代码优化不好怎么着怎么着的,其实有一些是因为这个原因,但不是完全因为这个。dede登录后台卡死原因分析登录完后台,加载的分别为顶部、左侧、右侧内容三个部分。顶部只是简单的查询一下权限不会卡、左侧也是简单的查询了一下也不会卡,那么原因就是......
  • 内存管理-18-sparsemem内存模型-初探
    一、简介Linux中的物理内存被按页框划分,每个页框都会对应一个structpage结构体存放元数据,也就是说每块页框大小的内存都要花费sizeof(structpage)个字节进行管理。因此系统会有大量的structpage,在linux的历史上出现过三种内存模型去管理它们。依次是平坦内存模型(flatm......
  • Fatal error: Call to a member function read() on a non-object in 错误解决方法(织
    大家都说这是因为织梦代码优化不好怎么着怎么着的,其实有一些是因为这个原因,但不是完全因为这个。dede登录后台卡死原因分析登录完后台,加载的分别为顶部、左侧、右侧内容三个部分。顶部只是简单的查询一下权限不会卡、左侧也是简单的查询了一下也不会卡,那么原因就是......
  • 13--memcache与redis
    前言:数据库读取速度较慢一直是无法解决的问题,大型网站应对的方式主要是使用缓存服务器来缓解这种情况,减少数据库访问次数,以提高动态Web等应用的速度、提高可扩展性。1、简介Memcached/redis是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高动......
  • Memcached介绍和详解
    Memcached介绍和详解Memcached是一个高性能的分布式内存对象缓存系统,通过在内存中缓存数据来减少数据库的读取次数,从而提高动态Web应用程序的速度和效率。下面将详细介绍Memcached的安装、配置和使用方法。Memcached简介Memcached是一个基于内存的缓存系统,它通常用于缓......
  • 题解:P8144 [JRKSJ R4] BBWWBB
    思路分析题意可得,白方必定不会胜利,只能尽量让游戏无限进行下去。那么我们只考虑黑方能否胜利。若想让戏能无限进行下去,必须满足以下条件。白方先手。若黑方先手必然可以吃掉一个白方,白方仅有一个棋子,必输。白方第一轮可以吃掉一颗黑方。因为只有\(3,4\)是白方,所以......
  • Media Analysis Memo
    Assignment5:MediaAnalysisMemo(18points)Inthisassignment,youareaskedtoconductascanofrelevantmedia,analyzethemediacoverage,andprovideasummaryofthisanalysisinordertoassesshowitmayimpactaclient’scampaign.Forthisassi......
  • Solidity:变量数据存储和作用域 storage/memory/calldata
    Solidity中的引用类型​引用类型(ReferenceType):包括数组(array)和结构体(struct),由于这类变量比较复杂,占用存储空间大,我们在使用时必须要声明数据存储的位置。数据位置​Solidity数据存储位置有三类:storage,memory和calldata。不同存储位置的gas成本不同。storage类型的数据存......
  • cgroup memory使用超过限制会怎样?
    cgroup可以对一个进程或者一组进程使用的资源进行限制,可以限制的资源包括cpu、memory、io等。其中memory可以对内存资源进行限制,比如我们限制进程所能使用的内存最大是1G,那么当进程已经使用了1G的内存的时候,这个时候进程再申请内存会怎么样呢 ?内存使用超过限制的时候有如下......