测试开发技术网站
博客
设计
设计
开发
Python
测试
unittest
运维
Linux基础应用
CI/CD
CI/CD
数据库
数据库
云计算
云计算
云原生
云原生
爬虫
爬虫
数据分析
数据分析
人工智能
人工智能
登录
注册
lmbench----lmbench性能测试工具迁移至openEuler操作系统实践
收藏本文
作者:redrose2100 类别: 日期:2023-10-30 15:30:47 阅读:806 次 消耗积分:0 分
[【lmbench----lmbench性能测试工具迁移至openEuler操作系统实践】](http://devops-dev.com/article/685) [TOC] # 一、openEuler系统上编译部署与运行 ## 1.1 安装基础依赖 ```bash dnf install -y git dnf install -y libtirpc libtirpc-devel ``` ## 1.2 下载 lmbench 源码 如下 github 上 [lmbench 代码仓](https://github.com/redrose2100/lmbench/tree/master) 是经过对openEuler系统x86_64和aarch64架构适配的,可以直接通过下载此代码仓代码,执行如下命令 ```bash cd /opt/ git clone https://github.com/redrose2100/lmbench.git ``` ## 1.3 编译安装 ```bash cd /opt/lmbench/src make ``` ## 1.4 执行 lmbench 测试 (1)执行如下命令启动 ```bash cd /opt/lmbench/src make results ``` (2)设置是否并行运行,这里先选择默认1,即直接回车即可 ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/667908de-76eb-11ee-9b70-0242ac110004.png) (3)然后输入 1,选择允许调度,然后回车 ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/8df69698-76f4-11ee-9b70-0242ac110004.png) (4)然后可以选择默认,直接回车 ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/b756cc56-76f4-11ee-9b70-0242ac110004.png) (5)然后继续保持默认,直接回车 ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/e7211e14-76f4-11ee-9b70-0242ac110004.png) (6)继续保持默认,直接回车 ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/0402deb4-76f5-11ee-9b70-0242ac110004.png) (7)继续保持默认,直接回车 ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/91a740fc-76f5-11ee-9b70-0242ac110004.png) (8)继续保持默认,直接回车 ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/a5a7bb36-76f5-11ee-9b70-0242ac110004.png) (9)继续保持默认,直接回车 ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/bf178588-76f5-11ee-9b70-0242ac110004.png) (10)继续保持默认,直接回车 ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/d3adce30-76f5-11ee-9b70-0242ac110004.png) (11)继续保持默认,直接回车 ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/e52f7cb2-76f5-11ee-9b70-0242ac110004.png) (12)继续保持默认,直接回车 ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/f37c4246-76f5-11ee-9b70-0242ac110004.png) (13)是否发送邮件,这里设置no,然后回车 ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/0a4fbd68-76f6-11ee-9b70-0242ac110004.png) (14)然后即开始执行 lmbench 了,此时可能需要等待较长时间,需要慢慢等待 ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/37ef0530-76f6-11ee-9b70-0242ac110004.png) ## 1.5 结果查看 执行完成后,通过如下命令可以查看性能测试结果 ```bash cd /opt/lmbench/ make see ``` 比如如下所示: ```bash [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 处理器性能 处理器性能结果如下所示: ```bash 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 数学运算性能 数学运算性能结果如下,数学运算性能指标比较明显,即加减乘除以及模运算的性能。如下设计整型运算、单精度浮点型运算、双精度浮点型运算 ```bash 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 上下文切换性能 上下文切换性能结果如下所示: ```bash 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 本地通信性能 本地通信性能结果如下: ```bash *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 文件及内存时延 文件及内存时延如下 ```bash 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 本地通信带宽性能 本地通信带宽性能如下 ```bash *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 内存操作时延 内存操作时延如下 ```bash 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?”
始终坚持开源开放共享精神,同时感谢您的充电鼓励和支持!
版权所有,转载本站文章请注明出处:redrose2100, http://blog.redrose2100.com/article/685
上一篇:
Kubernetes----基于kubeadm工具在CentOS7.9虚拟机上部署一主两从类型的1.26版本的Kubernetes集群环境
下一篇:
Test-Agent----基于Centos7系统部署Test-Agent
搜索
个人成就
出版书籍
《Pytest企业级应用实战》
测试开发技术全栈公众号
测试开发技术全栈公众号
DevOps技术交流微信群
加微信邀请进群
常用网站链接
开源软件洞察
云原生技术栈全景图
Python语言官方文档
Golang官方文档
Docker官方文档
Jenkins中文用户手册
Scrapy官方文档
VUE官方文档
Harbor官方文档
openQA官方文档
云原生开源社区
开源中国
Kubernetes中文文档
Markdown语法官方教程
Kubernetes中文社区
Kubersphere官方文档
BootStrap中文网站
JavaScript中文网
NumPy官方文档
Pandas官方文档
GitLink确实开源网站
数据库排名网站
编程语言排名网站
SEO综合查询网站
数学加减法练习自动生成网站
Kickstart Generator
文章分类
最新文章
最多阅读
特别推荐
×
Close
登录
注册
找回密码
登录邮箱:
登录密码:
图片验证码:
注册邮箱:
注册密码:
邮箱验证码:
发送邮件
注册邮箱:
新的密码:
邮箱验证码:
发送邮件