lmbench----lmbench性能测试工具迁移至openEuler操作系统实践

news2024/10/8 16:16:07

【lmbench----lmbench性能测试工具迁移至openEuler操作系统实践】

文章目录

  • 一、openEuler系统上编译部署与运行
    • 1.1 安装基础依赖
    • 1.2 下载 lmbench 源码
    • 1.3 编译安装
    • 1.4 执行 lmbench 测试
    • 1.5 结果查看
  • 二、lmbench 性能测试结果解析
    • 2.1 处理器性能
    • 2.2 数学运算性能
    • 2.3 上下文切换性能
    • 2.3 本地通信性能
    • 2.4 文件及内存时延
    • 2.5 本地通信带宽性能
    • 2.6 内存操作时延

一、openEuler系统上编译部署与运行

1.1 安装基础依赖

dnf install -y git
dnf install -y libtirpc libtirpc-devel

1.2 下载 lmbench 源码

如下 github 上 lmbench 代码仓 是经过对openEuler系统x86_64和aarch64架构适配的,可以直接通过下载此代码仓代码,执行如下命令

cd /opt/
git clone https://github.com/redrose2100/lmbench.git

1.3 编译安装

cd /opt/lmbench/src
make

1.4 执行 lmbench 测试

(1)执行如下命令启动

cd /opt/lmbench/src
make results

(2)设置是否并行运行,这里先选择默认1,即直接回车即可

(3)然后输入 1,选择允许调度,然后回车

(4)然后可以选择默认,直接回车

(5)然后继续保持默认,直接回车

(6)继续保持默认,直接回车

(7)继续保持默认,直接回车

(8)继续保持默认,直接回车

(9)继续保持默认,直接回车

(10)继续保持默认,直接回车

(11)继续保持默认,直接回车

(12)继续保持默认,直接回车

(13)是否发送邮件,这里设置no,然后回车

(14)然后即开始执行 lmbench 了,此时可能需要等待较长时间,需要慢慢等待

1.5 结果查看

执行完成后,通过如下命令可以查看性能测试结果

make see

比如如下所示:

[root@redrose2100-lmbench lmbench]# make see
cd results && make summary percent 2>/dev/null | more
make[1]: Entering directory '/opt/lmbench/results'

                 L M B E N C H  3 . 0   S U M M A R Y
                 ------------------------------------
                 (Alpha software, do not distribute)


Processor, Processes - times in microseconds - smaller is better
------------------------------------------------------------------------------
Host                 OS  Mhz null null      open slct sig  sig  fork exec sh
                             call  I/O stat clos TCP  inst hndl proc proc proc
--------- ------------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
redrose21 Linux 5.10.0- 1598 0.45 0.51 1.23 2.48 5.96 0.52 1.25 339. 1681 2634

Basic integer operations - times in nanoseconds - smaller is better
-------------------------------------------------------------------
Host                 OS  intgr intgr  intgr  intgr  intgr
                          bit   add    mul    div    mod
--------- ------------- ------ ------ ------ ------ ------
redrose21 Linux 5.10.0- 0.2100        0.9800 7.4800 8.2600

Basic float operations - times in nanoseconds - smaller is better
-----------------------------------------------------------------
Host                 OS  float  float  float  float
                         add    mul    div    bogo
--------- ------------- ------ ------ ------ ------
redrose21 Linux 5.10.0- 0.9500 0.9500 3.5100 0.8000

Basic double operations - times in nanoseconds - smaller is better
------------------------------------------------------------------
Host                 OS  double double double double
                         add    mul    div    bogo
--------- ------------- ------  ------ ------ ------
redrose21 Linux 5.10.0- 0.9500 0.9500 4.4500 1.4500

Context switching - times in microseconds - smaller is better
-------------------------------------------------------------------------
Host                 OS  2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K
                         ctxsw  ctxsw  ctxsw ctxsw  ctxsw   ctxsw   ctxsw
--------- ------------- ------ ------ ------ ------ ------ ------- -------
redrose21 Linux 5.10.0- 5.7100 5.4700 6.2900 8.7600   18.3 8.91000    11.1

*Local* Communication latencies in microseconds - smaller is better
---------------------------------------------------------------------
Host                 OS 2p/0K  Pipe AF     UDP  RPC/   TCP  RPC/ TCP
                        ctxsw       UNIX         UDP         TCP conn
--------- ------------- ----- ----- ---- ----- ----- ----- ----- ----
redrose21 Linux 5.10.0- 5.710  12.9 10.7  22.7  27.6  27.4  34.4  68.

File & VM system latencies in microseconds - smaller is better
-------------------------------------------------------------------------------
Host                 OS   0K File      10K File     Mmap    Prot   Page   100fd
                        Create Delete Create Delete Latency Fault  Fault  selct
--------- ------------- ------ ------ ------ ------ ------- ----- ------- -----
redrose21 Linux 5.10.0- 9.9702 6.9090   21.3   11.2   37.1K 0.764         1.328

*Local* Communication bandwidths in MB/s - bigger is better
-----------------------------------------------------------------------------
Host                OS  Pipe AF    TCP  File   Mmap  Bcopy  Bcopy  Mem   Mem
                             UNIX      reread reread (libc) (hand) read write
--------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- -----
redrose21 Linux 5.10.0- 3242 7813 3863 6257.4 7326.2 8393.1 4079.9 7401 5750.

Memory latencies in nanoseconds - smaller is better
    (WARNING - may not be correct, check graphs)
------------------------------------------------------------------------------
Host                 OS   Mhz   L1 $   L2 $    Main mem    Rand mem    Guesses
--------- -------------   ---   ----   ----    --------    --------    -------
redrose21 Linux 5.10.0-  1598 1.3240 6.8310   29.1        92.3
make[1]: Leaving directory '/opt/lmbench/results'

二、lmbench 性能测试结果解析

2.1 处理器性能

处理器性能结果如下所示:

Processor, Processes - times in microseconds - smaller is better
------------------------------------------------------------------------------
Host                 OS  Mhz null null      open slct sig  sig  fork exec sh
                             call  I/O stat clos TCP  inst hndl proc proc proc
--------- ------------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
redrose21 Linux 5.10.0- 1598 0.45 0.51 1.23 2.48 5.96 0.52 1.25 339. 1681 2634

其中:

  • null call: 表示执行 getppid 需要的时间
  • null I/O: 表示从 /dev/zero 读取一个字节的时长和写一个字节到 /dev/null 的时长的平均值
  • stat: stat 表示得到一个文件的信息所需时长;
  • open clos: 表示打开一个文件然后再关闭该文件所用时间(不包含读目录和节点的时间)
  • slct TCP: 表示通过 TCP 网络连接选择 100 个文件描述符所消耗的时间;
  • sig inst: 表示安装信号所耗时长;
  • sig hndl: 表示处理信号所耗时长;
  • fork proc: 表示fork一个完全相同的进程,并把原来的进程关闭一共所消耗的时间;
  • exec proc: 表示模拟一个shell进程的工作过程:fork 一个新进程执行新命令消耗的时间。
  • sh proc: 表示fork一个进程,同时询问系统 shell 来找到并运行一个新程序所用时间。

2.2 数学运算性能

数学运算性能结果如下,数学运算性能指标比较明显,即加减乘除以及模运算的性能。如下设计整型运算、单精度浮点型运算、双精度浮点型运算

Basic integer operations - times in nanoseconds - smaller is better
-------------------------------------------------------------------
Host                 OS  intgr intgr  intgr  intgr  intgr
                          bit   add    mul    div    mod
--------- ------------- ------ ------ ------ ------ ------
redrose21 Linux 5.10.0- 0.2100        0.9800 7.4800 8.2600

Basic float operations - times in nanoseconds - smaller is better
-----------------------------------------------------------------
Host                 OS  float  float  float  float
                         add    mul    div    bogo
--------- ------------- ------ ------ ------ ------
redrose21 Linux 5.10.0- 0.9500 0.9500 3.5100 0.8000

Basic double operations - times in nanoseconds - smaller is better
------------------------------------------------------------------
Host                 OS  double double double double
                         add    mul    div    bogo
--------- ------------- ------  ------ ------ ------
redrose21 Linux 5.10.0- 0.9500 0.9500 4.4500 1.4500

2.3 上下文切换性能

上下文切换性能结果如下所示:

Context switching - times in microseconds - smaller is better
-------------------------------------------------------------------------
Host                 OS  2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K
                         ctxsw  ctxsw  ctxsw ctxsw  ctxsw   ctxsw   ctxsw
--------- ------------- ------ ------ ------ ------ ------ ------- -------
redrose21 Linux 5.10.0- 5.7100 5.4700 6.2900 8.7600   18.3 8.91000    11.1

其中:

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

2.3 本地通信性能

本地通信性能结果如下:

*Local* Communication latencies in microseconds - smaller is better
---------------------------------------------------------------------
Host                 OS 2p/0K  Pipe AF     UDP  RPC/   TCP  RPC/ TCP
                        ctxsw       UNIX         UDP         TCP conn
--------- ------------- ----- ----- ---- ----- ----- ----- ----- ----
redrose21 Linux 5.10.0- 5.710  12.9 10.7  22.7  27.6  27.4  34.4  68.

其中:

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

2.4 文件及内存时延

文件及内存时延如下

File & VM system latencies in microseconds - smaller is better
-------------------------------------------------------------------------------
Host                 OS   0K File      10K File     Mmap    Prot   Page   100fd
                        Create Delete Create Delete Latency Fault  Fault  selct
--------- ------------- ------ ------ ------ ------ ------- ----- ------- -----
redrose21 Linux 5.10.0- 9.9702 6.9090   21.3   11.2   37.1K 0.764         1.328

其中:

  • 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 的时间

2.5 本地通信带宽性能

本地通信带宽性能如下

*Local* Communication bandwidths in MB/s - bigger is better
-----------------------------------------------------------------------------
Host                OS  Pipe AF    TCP  File   Mmap  Bcopy  Bcopy  Mem   Mem
                             UNIX      reread reread (libc) (hand) read write
--------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- -----
redrose21 Linux 5.10.0- 3242 7813 3863 6257.4 7326.2 8393.1 4079.9 7401 5750.

其中:

  • 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,测试写数据到内存的带宽

2.6 内存操作时延

内存操作时延如下

Memory latencies in nanoseconds - smaller is better
    (WARNING - may not be correct, check graphs)
------------------------------------------------------------------------------
Host                 OS   Mhz   L1 $   L2 $    Main mem    Rand mem    Guesses
--------- -------------   ---   ----   ----    --------    --------    -------
redrose21 Linux 5.10.0-  1598 1.3240 6.8310   29.1        92.3

其中:

  • L1: 缓存1
  • L2: 缓存2
  • Main Mem: 连续内存
  • Rand Mem: 内存随机访问延时
  • Guesses:
    假如 L1 和 L2 近似,会显示 “No L1 cache?”
    假如 L2 和 Main Mem 近似,会显示 “No L2 cache?”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1153945.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

左移测试,如何确保安全合规还能实现高度自动化?

「云原生安全既是一种全新安全理念,也是实现云战略的前提。 基于蚂蚁集团内部多年实践,云原生PaaS平台SOFAStack发布完整的软件供应链安全产品及解决方案,包括静态代码扫描Pinpoint,软件成分分析SCA,交互式安全测试IA…

2023年【道路运输企业安全生产管理人员】试题及解析及道路运输企业安全生产管理人员复审考试

题库来源:安全生产模拟考试一点通公众号小程序 道路运输企业安全生产管理人员试题及解析考前必练!安全生产模拟考试一点通每个月更新道路运输企业安全生产管理人员复审考试题目及答案!多做几遍,其实通过道路运输企业安全生产管理…

基于Docker使用Minikube

1. 查看并操控Minikube状态信息 Minikube相当于docker中的一个container,可以在Docker Desktop中看到并操控Minikube container的相关状态: 通过以下命令查看当前docker中的container: % docker ps CONTAINER ID IMAGE …

Win10搜索栏卡住无响应可以尝试以下方法

msdt.exe -ep WindowsHelp id SearchDiagnostic 参考: Fix problems in Windows Search - Windows Client | Microsoft Learn

Vue 项目中如何使用Bootstrap5(简单易懂)

Vue 项目中如何使用Bootstrap5(简单易懂) 安装在 src/main.js 文件下引入包在vue文件中使用 Bootstrap官网(中文):https://www.bootcss.com/ Bootstrap5文档:https://v5.bootcss.com/docs/getting-started/…

Django添加csrf保护机制

步骤 要在Django中启用CSRF保护,您可以按照以下步骤进行操作: 1. 在Django的settings.py文件中,确保django.middleware.csrf.CsrfViewMiddleware中间件已添加到MIDDLEWARE设置中。通常,这个中间件默认就会包含在其中。 2. 在HTM…

测试计划驱动开发模式 TPDD:一种比 TDD 更友好的开发模式

相信大部分开发团队都在使用TDD,并且还有很多开发团队都 对外声明 在使用 TDD 开发模式。 之所以说是“对外声明”,是因为很多开发团队虽然号称使用的是 TDD 开发模式,实际开发过程中却无法满足 TDD 的要求。 实际上,测试驱动的…

安科瑞AMC200多回路智能电量采集监控装置在隧道中的应用-安科瑞黄安南

1项目背景厂家直供黄安南1876-15//06-237 河南安阳林州市某高速公路项目是河南省政府主要打造的一项公路建设项目,该项目全长约70公里,起点位于安阳市内,终点位于林州市县。该项目总投资约60亿元人民币,建设工期预计为3年。 该项…

微信管理系统!

多微信聚合聊天 这个功能可以让你在一个页面上轻松切换多个微信,方便与多个客户进行沟通。这样可以避免在多个手机或电脑界面之间切换,提高工作效率。 群发功能 微信登陆上系统后,可以对好友/群进行群发消息(支持文字&#xff0…

基于深度学习的人脸表情识别 计算机竞赛

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的人脸表情识别 该项目较…

电脑频繁出现程序无响应怎么办?

在Windows系统中每个运行的应用程序都会有一个进程,而每个进程会有多个线程,就如你打开微信同时与多个人聊天,而每个线程只能同时处理一个线程。若Windows向程序传递消息时,而程序在处理其他工作未作出反应,Windows就会…

Hadoop RPC简介

数新网络-让每个人享受数据的价值https://www.datacyber.com/ 前 言 RPC(Remote Procedure Call)远程过程调用协议,一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议。RPC它假定某些协议的存在,例…

二进制搭建 Kubernetes与k8s集群搭建(一)

目录 二进制搭建 Kubernetes v1.20 操作系统初始化配置 部署 docker引擎 部署 etcd 集群 准备签发证书环境 在 master01 节点上操作 生成Etcd证书 在 node01 节点上操作 在 node02 节点上操作 部署 Master 组件 在 master01 节点上操作 部署 Worker Node …

企业通关必备,iPaaS应该这样搭建

iPaaS是指集成平台即服务(Integration Platform as a Service),是一种云计算服务,提供了一套工具和服务来帮助企业集成不同的应用程序、数据和系统。iPaaS也可以通过云端的方式,将企业内部的应用程序与云端应用程序进行…

nodejs使用axios以formdata形式上传图片

nodejs使用axios以formdata形式上传图片 FormData是一种用于发送表单数据的接口,它可以用来上传文件。在前端,可以通过创建一个FormData对象,将要上传的文件添加到这个对象中,然后通过AJAX请求将这个FormData对象发送给服务器。服…

unity性能优化__Statistic状态分析

在Unity的Game视图右上角,我们会看到有Stats选项,点击会出现这样的信息 我使用的Unity版本是2019.4.16 一、Audio,顾名思义是声音信息 1:Level:-74.8dB 声音的相对强度或音量。通常,音量级别以分贝(dB&a…

超2000个大模型应用,支持文心4.0!AI Studio星河大模型社区升级上新

想给自己做个私人定制的旅行攻略,满足个性化的出游需求,还要细致关注到天气、穿衣、老人孩子的作息等等,但太耗时费力怎么办?让AI帮忙搞定。一位开发者在AI Studio星河大模型社区用短短数小时就做好了“旅行规划家”智能应用。像这…

睿趣科技:抖音开网店真的能相信吗

随着互联网的发展,越来越多的人开始尝试在网上开店。抖音作为一款短视频平台,近年来也逐渐成为了一个热门的电商平台。然而,关于抖音开网店是否真的能相信的问题,一直存在争议。 首先,我们需要了解抖音作为一个电商平台…

科幻类小说,探索科幻巨作,开启无限遐想,感受未知的奇妙世界

如果你渴望探索未来的无尽可能性,感受未知的魅力,那么小郑为你推荐三本科幻小说。这些书籍将带你进入一个充满惊喜的世界,让你对未来充满期待。 《星舰流浪文明》 这是一本硬科幻小说,讲述了星舰流浪文明的故事。这个文明在宇宙中…

【K8s】 资源管理命令-陈述式

一、资源管理介绍 1、资源管理概念 在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes //kubernetes的本质就是一个集群系统,用户可以在集群中部署各种服务,起始就是在kubernetes集群中运行一个个容…