服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 性能测试工具 Lmbench 的使用方法以及解析运行结果

性能测试工具 Lmbench 的使用方法以及解析运行结果

2023-10-20 11:38Imagine Miracle Linux

Lmbench 是一款简易可以移植的内存测试工具,其主要功能有,带宽测评(读取缓存文件、拷贝内存、读/写内存、管道、TCP),延时测评(上下文切换、网络、文件系统的建立和删除、进程创建、信号处理、上层系统调用、内存读入

1. Lmbench 简介

Lmbench 是一款简易可以移植的内存测试工具,其主要功能有,带宽测评(读取缓存文件、拷贝内存、读/写内存、管道、TCP),延时测评(上下文切换、网络、文件系统的建立和删除、进程创建、信号处理、上层系统调用、内存读入反应时间)等功能。

2. 下载和安装

官网地址:http://www.bitmover.com/lmbench/

imaginemiracle:Downloads$ unzip lmbench-3.0-a9.zip

需要注意的是,目前解压出的 lmbench 中所有文件都不可被执行,当直接执行 make 编译后将会看到类似有 Permission denied 等一系列错误。

这里首先需要更改所有文件的权限:

imaginemiracle:Downloads$ sudo chmod 777 -R lmbench-3.0-a9/

进入 lmbench 目录,其目录结构如下。

imaginemiracle:Downloads$ cd lmbench-3.0-a9/
imaginemiracle:lmbench-3.0-a9$ ls
ACKNOWLEDGEMENTS  CHANGES    COPYING    doc              Makefile  results  src
bin               ChangeSet  COPYING-2  hbench-REBUTTAL  README    scripts

3. 使用 Lmbench 测试

执行 make results,执行后将会有以下选项提示需要设置:

  • MULTIPLE COPIES: 同时运行并行测试,对应生成结果中的 scal load 项;
  • Job placement selection: 作业调度控制方法,默认选 1,表示允许作业调度;
  • Options to control job placement: 默认选 1;
  • Memory: 设置为大于 4 倍的 cache size,该值越大结果越精确,同时运行时间越长;
  • SUBSET: 要运行的子集,包含 ALL / HARWARE / OS / DEVELOPMENT,默认选 all;
  • FASTMEM、SLOWFS、DISKS、REMOTE… 等选项,均保持默认即可。

设置完成后测试程序开始运行,需要注意运行时间较久,需耐心等待,或先做其他事情至少 10 min 后再看。

4. 查看结果

执行 make see 查看运行结果,若只出现两行命令,显示运行结果输出到了 summary.out 文件中,则直接查看该文件即可。cat ./results/summary.out。

将会看到如下输出:

性能测试工具 Lmbench 的使用方法以及解析运行结果

4.1. 系统基本信息

输出结果中开始显示系统的基本参数信息。

性能测试工具 Lmbench 的使用方法以及解析运行结果

其中:

  • tlb: 表示转换后备缓存的页面数;
  • cache line bytes: 高速缓存行字节数
  • mem par: 存储器分层并行化;
  • scal load: 并行执行的 Lmbench 数目。

4.2. 处理器 Processor 性能

如下输出结果单位均为 us,数值越小表示性能越好。

性能测试工具 Lmbench 的使用方法以及解析运行结果

  • null call: 执行 getppid 需要的时间;
  • null I/O: 从 /dev/zero 读取一个字节的时长 t1,写一个字节到 /dev/null 的时长 t2,t1、t2 取平均值即为该项结果;
  • stat: stat 一个文件(即得到一个文件的信息)所需时长;
  • open clos: open 一个文件接着再 close 掉该文件一共所用时间(不包含读目录和节点的时间);
  • slct TCP: 通过 TCP 网络连接选择 100 个文件描述符所消耗的时间;
  • sig inst: install signal 所耗时长;
  • sig hndl: handler signal 所耗时长;
  • fork proc: fork 一个完全相同的 process,并把原来的 process 关掉一共所消耗的时间;
  • exec proc: 模拟一个 shell 进程的工作过程:fork 一个新进程执行新命令消耗的时间。
  • sh proc: fork 一个进程,同时询问系统 shell 来找到并运行一个新程序所用时间。

4.3. 数学运算

如下输出结果单位均为 ns,数值越小表示性能越好。

(1) 整型计算

性能测试工具 Lmbench 的使用方法以及解析运行结果

(2) 无符号整型计算

性能测试工具 Lmbench 的使用方法以及解析运行结果

(3) 浮点型计算

性能测试工具 Lmbench 的使用方法以及解析运行结果

(4) 双精度浮点型计算

性能测试工具 Lmbench 的使用方法以及解析运行结果

4.4. 上下文切换

如下输出结果单位均为 us,数值越小表示性能越好。

性能测试工具 Lmbench 的使用方法以及解析运行结果

多个进程用 unix pipe 环连接起来,每个进程从自己的管道中读取 token,执行任务,然后将 token 写给下一个进程。

context swithing 时间包括:切换进程的时间,加上恢复进程所有状态所用的时间(包含恢复 cache 状态)。

  • 2p/0k: 每个进程的 size 为 0(不执行任何任务),进程数为 2 时上下文切换所消耗的时间;
  • 2p/16k: 每个进程 size 为 16K(执行任务),进程数为 2 时上下文切换所消耗的时间;

之后的测试项以此类推。

4.5. 本地通讯时延

如下输出结果单位均为 us,数值越小表示性能越好。

性能测试工具 Lmbench 的使用方法以及解析运行结果

  • 2p/0k: 每个进程的 size 为 0(不执行任何任务),进程数为 2 时上下文切换所消耗的时间;
  • Pipe: 即所谓的 hot potato 测试,两个没有具体任务的进程之间使用 pipe 通信,一个 token 在两个进程间来回传递,传递一个来回所消耗时长的平均值;
  • AF UNIX: 同 Pipe 测试项,但进程间通信使用的是 socket 通信;
  • UDP: 同 Pipe 测试项,但进程间通信使用的是 UDP/IP 通信;
  • RPC/UDP: 同 Pipe 测试项,但进程间通信使用的是 sun RPC 通信,默认情况下,RPC 采用 UDP 协议传输;
  • TCP: 同 Pipe 测试项,但进程间通信使用的是 TCP/IP 通信;
  • RPC/TCP: 同 Pipe 测试项,但进程间通信使用的是 sun RPC 通信,指定 RPC 采用 TCP 协议传输;
  • TCP conn: 创建 socket 描述符和建立连接所用时间。

4.6. 文件、内存延时

如下输出结果单位均为 us,数值越小表示性能越好。

性能测试工具 Lmbench 的使用方法以及解析运行结果

  • 0K File Create: 0K 文件创建所用时间;
  • 0K File Delete: 0K 文件删除所用时间;
  • 10K File Create: 10K 文件创建所用时间;
  • 10K File Delete: 10K 文件删除所用时间;
  • Mmap Latency: 将指定文件的开头 n 个字节 mmap 到内存,然后 unmap,并记录每次 mmap 和 unmap 共消耗的时间,去每次消耗时间的最大值;
  • Port Fault: 保护页延时时间;
  • Page Faule: 缺页延时时间;
  • 100fd selct: 对 100 个文件描述符配置 select 的时间。

4.7. 本地通信带宽

如下输出结果单位均为 MB/s,数值越大表示性能越好。

性能测试工具 Lmbench 的使用方法以及解析运行结果

  • Pipe: 在两个进程建立 pipe,pipe 的每个 chunk 为 64K,通过该管道移动 50MB 数据所消耗的时间;
  • AF UNIX: 两个进程之间建立 unix stream socket 连接,每个 chunk 为 64K,通过该 socket 传输 10MB 数据所用的时间;
  • TCP: 同 Pipe 测试项,但进程间使用 TCP/IP socket 通信,传输数据量为 3MB;
  • File reread: 读文件并将其汇总一起所用的时间;
  • Mmap reread: 将文件 mmap 到内存中,从内存中读文件并将其汇总一起所用时间;
  • Bcopy(libc): do bw_mem $i bcopy,从指定内存区域拷贝指定数量的字节内容到另一个指定内存区域的速度;
  • Bcopy(hand): do bw_mem %i fcp,把数据从磁盘的一个位置拷贝到另一个位置所用的时间;
  • Mem read: bw_mem $i frd,累加数组中的整数值,测试把数据读入 processor 的带宽;
  • Mem write: do bw_mem $i fwr,把整数数组的每个成员设置为 1,测试写数据到内存的带宽。

4.8. 内存操作延时

如下输出结果单位均为 ns,数值越小表示性能越好。

性能测试工具 Lmbench 的使用方法以及解析运行结果

本地测试执行 lat_mem_rd,将整数数组中每第 4 个元素的值累加起来;测试的是读数据到 processor 的带宽。

  • L1: 缓存1
  • L2: 缓存2
  • Main Mem: 连续内存
  • Rand Mem: 内存随机访问延时
  • Guesses:

    假如 L1 和 L2 近似,会显示 “No L1 cache?”

    假如 L2 和 Main Mem 近似,会显示 “No L2 cache?”

到此这篇关于性能测试工具 Lmbench 的使用方法以及解析运行结果的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/qq_36393978/article/details/125989992

延伸 · 阅读

精彩推荐
  • Linux使用 cowsay 命令的三种有趣方式

    使用 cowsay 命令的三种有趣方式

    在所有杰出的开源软件中,有些是 为了好玩而写的。我以前介绍过一些 有趣的命令,但这篇文章只讲一个:古老的 cowsay 命令。...

    Linux中国9452021-11-26
  • LinuxWine 8.18 发布:增强 Wayland 窗口管理、整合 FluidSynth 库、修复 44 处 BUG

    Wine 8.18 发布:增强 Wayland 窗口管理、整合 FluidSynth 库、修复 4

    10 月 14 日消息,WineHQ 当前正以 2 个星期为周期,推进 Wine 8.x 版本更新,团队于今天正式推出了 8.18 更新。 Wine 8.18 在 8.17 版本基础上,进一步为 Wayland 驱...

    IT之家12023-10-16
  • Linuxgrub命令行启动系统简明教程

    grub命令行启动系统简明教程

    这篇文章主要介绍了grub命令行启动系统的简明教程,以及GRUB启动命令详解,需要的朋友可以参考下...

    Linux教程网8212021-10-10
  • Linux如何在 Linux 下将网页转换为 PDF 文件

    如何在 Linux 下将网页转换为 PDF 文件

    当你将某些资源存档或用于教育目的时,将网页保存为 PDF 是很方便的。但是,你如何在 Linux 中把一个网页转换成 PDF?...

    Linux中国6982021-10-29
  • Linuxawk:一个强大的文本分析工具

    awk:一个强大的文本分析工具

    awk 是流式编辑器,针对文档中的行来操作,一行一行地执行。awk 可以非常方便、高效地操作文档以及字符,从而实现我们想要的格式。它的功能非常强大...

    Linux中国5232021-03-09
  • Linuxcpio 解压参数

    cpio 解压参数

    解压 cpio文件 cpio -idmv filename.cpio 同样可以解压img文件: cpio -idmv filename.img cpio 备份命令 备份:cpio -covB [file|device] 将数据备份到文件或设备上 还原:cpio ...

    Linux教程网2272020-04-13
  • LinuxLinux服务器日志管理详解

    Linux服务器日志管理详解

    在Linux系统中,有三个主要的日志子系统: 连接时间日志--由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管...

    Linux教程网4872020-04-14
  • LinuxLinux如何在history上添加时间和用户等参数

    Linux如何在history上添加时间和用户等参数

    Linux 系统下可以使用 history 命令来查看指令的历史记录。为了提高history命令的效率,还可以在history命令加上一些参数,比如时间、用户和IP等等参数。那么...

    系统之家4572020-07-02