[转帖]基本系统调用性能lmbench测试方法和下载

基本,系统,调用,性能,lmbench,测试方法,下载 · 浏览次数 : 0

小编点评

**Lmbench工具简介** Lmbench是简易、可移植的,符合ANSI/C标准的微型测评工具。它主要衡量两个关键特征:反应时间和带宽。 **测试方法** 1. 将 lmbench 工具复制到系统下。 2. 在 /home/kylin/lmbench 目录中执行 `make results`。 3. 打开 `/home/kylin/lmbench/results/summary.out` 文件查看测试结果。 **测试参数** * **Tlb pages:**转换后备缓存的页面数。 * **Cache line bytes:**高速缓存行字节数。 * **Mem par:**存储器分层并行化。 * **Scal load:**多个进程之间的负载。 * **Document、内存延时:**文件和内存操作的延迟。 * **Local communication bandwidth:**本地通信带宽。 * **Memory operation delay:**内存操作的延迟。 * **Remote communication bandwidth:**远程通信带宽。 * **Memory operation bandwidth:**内存操作的带宽。 **文档** * 文档和内存延时测试结果以 stride 为单位。 * 最终行的第二字段包含 L1、L2 和 Main mem 的值。 * `Rand mem` 用于判断 L1 和 L2 差距占其中最大值的百分比。 **其他** * 对于快速测试,该工具仅测试 128M 内存的情况。 * 对于 L1 和 L2 差距小于 20%,输出 “No L2 cache”。 * 对于 L1 和 L2 差距大于 20%,输出 “No L1 cache”。

正文

简介

Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具。一般来说,它衡量两个关键特征:反应时间和带宽。

Lmbench旨在使系统开发者深入了解关键操作的基础成本。

本文以银河麒麟/Ubuntu为例。

文末获取【lmbench】工具下载地址

测试方法

1.将lmbench工具拷贝到系统下,(例如:/home/kylin/目录)并解压:

tar -xvf lmbench-3.0-a9-1.tar.bz2 
  • 1

2.进入lmbench目录

cd /home/kylin/lmbench
  • 1

3.如果是飞腾cpu,执行这一步,若是x86跟mips机器,则跳过这一步:

sudo sed -i ‘s/arm/aarch/’ scripts/gnu-os
  • 1

4.第一种方法:
 将提前修改好的config-run、lmbench.config配置文件(文件名要一致,如有不同,则需要改名)复制到 scripts/目录中,并赋权限chmod -R 777 *,然后返回/home/kylin/lmbench 目录执行make results;
第二种方法:
 直接在/home/kylin/lmbench目录执行make results,根据提示信息,一步步完成,测试内存(单位MB)选择时:服务器建议使用10000,桌面系统可按照默认值设置,保证测试能够尽可能的加快,内存的大小与该测试项的测试指标没有关系,本测试项不牵涉到内存的测试;邮件时选择no;
如下图所示:
在这里插入图片描述

5.继续在解压缩包的目录里(/home/kylin/lmbench目录)执行:

make see
  • 1

测试过程如下图所示:
在这里插入图片描述

6.打开/home/kylin/lmbench/results目录中summary.out文件查看测试结果。

测试结果分析

打开summary.out查看各项指标具体数值。

1.系统基本参数
在这里插入图片描述
Tlb pages: 转换后备缓存的页面数
Cache line bytes:高速缓存行字节数
Mem par:存储器分层并行化
Scal load:并行执行的lmbench数目

2.处理器Processor性能【单位:us,数值越小越好】
在这里插入图片描述
Null call: 执行getppid需要的时间;
Null I/O: 从/dev/zero读一个字节的时间长A,写一个字节到/dev/null需要的时间长B,A和B取平均值;
Stat: stat一个文件(即得到一个文件的信息)需用的时间;
Open close: open一个文件然后再close它总共需用的时间(不包括读目录和节点的时间);
Slct TCP: 通过TCP网络连接选择100个文件描述符所耗用的时间;
Sig inst: install signal handler所耗用的时间;
Sig hndl: catch signal所耗用的时间;
Fork proc:fork一个完全相同的 process,并把原来的process关掉所耗用的时间;
Exec proc:模拟一个shell进程的工作过程,fork一个新进程执行新命令,所耗用的时间;
Sh proc:模拟最常见情况:fork一个新进程,同时询问系统shell来找到并运行一个新程序所耗用的时间。

3.数学运算【单位:ns,值越小性能越好】
整型:
在这里插入图片描述
无符号整型:
在这里插入图片描述

浮点型:
在这里插入图片描述
双精度型:
在这里插入图片描述
4.上下文切换【单位:us,值越小性能越好】
在这里插入图片描述
多个进程用unix pipe换连接起来,每个进程从自己的管道中读取token,执行任务,然后将token写给下一个进程。

Context swithing时间包括:切换进程时间,加上恢复进程所有状态所用时间(包括恢复cache状态);
2p/0K:每个进程的size为0(不执行任何任务),进程数为2时上下文切换耗用的时间;
2p/16K:每个进程的size为16K(执行任务),进程数为2时上下文切换耗用的时间。

5.本地通讯延时【单位:us,值越小性能越好】
在这里插入图片描述
2p/0k:每个进程的size为0(不执行任何任务),进程数为2时上下文切换耗用的时间;
Pipe:hot potato测试:两个没有具体任务的进程用unix pipe通信,一个token在两个进程间来回传递,传递一个来回所耗用的平均时间;
AF UNIX:同Pipe,不同的是两个进程采用unix 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:创建一个AF_INET(aka TCP/IP)socket并连接到远程主机所耗用的时间,这个时间仅指创建socket和建立连接本身,不包括解析主机名等其他动作所用时间。

6.文档、内存延时【单位:us,值越小越好】
在这里插入图片描述
0K Create:0K文件创建所花时间;
0K Delete:0K文件删除所花时间;
10K Create:10K文件创建所花时间;
10K Delete:10K文件删除所花时间;
Mmap Latency:将指定文件的开头n个字节map到内存,然后umap,并记录每次map和umap共耗用的时间,记录的是每次耗用时间的最大值;
Prot Fault:保护页延时时间;
Page Fault:缺页延时时间;
100fd selct:对100个文档描述符配置select的时间;

7.本地通信带宽【单位:MB/S,值越大越好】
在这里插入图片描述
Pipe:在两个进程间建立一个unix pipe,pipe的每个chunk为64K,通过该管道移动50M数据所用的时间;
AF UNIX:在两个进程间建立一个unix stream socket,每个chunk为64K,通过该socket移动10M数据所用的时间;
TCP:同Pipe,不同的是进程间通过TCP/IP socket通信,传输的数据为3MB;
File reread:读文件并把它们汇总起来所用的时间;
Mmap reread:将文件map到内存中,从内存中读文件并把它们汇总起来所用的时间;
Bcopy(libc):从指定内存区域拷贝指定数目的字节内容到指定的另一个内存区域的速度;
Bcopy(hand):把数据从磁盘上一个位置拷贝到另一个位置所用的时间;
Mem read:累加数据组中的整数值,测试把数据读入processor的带宽;
Mem write:把整数数组的每个成员设置为1,测试写数据到内存的带宽。

8.内存操作延时【单位:ns,值越小性能越好】
在这里插入图片描述
本项测试执行lat_mem_rd,将整数数组每第4个元素的值累加起来;测试的是读数据到processor的带宽。

如果测试配置为:执行快速测试,则本测试只测128M内存的情况,否则,将分别测试16M 32M 64M 126M 256M 512M 1024M 的情况;

测试结果:读输出结果中以stride=128开头的段,段中两个字段单位为megabytes,megabytes_per_second;
L1 $:输出结果中以stride=128开头的段中,首字段(size)为0.00098行的第二字段;
L2 $:输出结果中以stride=128开头的段中,首字段(size)为0.12500行的第二字段;
Main mem:最后行的第二字段值;
Rand mem:系统内存随机访问操作系统延时;
Guesses:判断前面得到的L1和L2值差值占其中最大值的百分比,比如大于20%,且L2和Main mem差值占其中最大值的百分比小于20%,则输出“No L2 cache”;否则,判断L1和L2差距与其中最大值的百分比,如果小于20%,则输出“No L1 cache”否则什么也不输出。

更多精彩文章可关注公众号【天耀数码】,公众号回复【lmbench】获取下载地址。

文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux入门初识Linux29394 人正在系统学习中

与[转帖]基本系统调用性能lmbench测试方法和下载相似的内容:

[转帖]基本系统调用性能lmbench测试方法和下载

简介 Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具。一般来说,它衡量两个关键特征:反应时间和带宽。 Lmbench旨在使系统开发者深入了解关键操作的基础成本。 本文以银河麒麟/Ubuntu为例。 文末获取【lmbench】工具下载地址 测试方法

[转帖]Unixbench的使用(综合性能测试、2D测试)和问题解决(跑不出多线程分数,调不出窗口,报错等)

一、Unixbench简介 Unixbench一个基于系统的基准测试工具,不单纯是CPU 内存 或者磁盘测试工具。测试结果不仅仅取决于硬件,也取决于系统、开发库、甚至是编译器。Unixbench是一个老牌的性能测试工具,下载主要是针对Unixbench进行综合性能以及使用Unixbench进行2D性

[转帖]JVM系列之:GC调优基础以及初识jstat命令

本文为《深入学习 JVM 系列》第二十二篇文章 影响垃圾收集性能有三个主要的属性,垃圾收集调优又有三个基本原则,以及垃圾收集调优时需要采集的信息。如果想要对垃圾收集进行调优,则需要根据实际场景对不同属性做出取舍,理解调优的原则以及收集什么信息。 性能属性 吞吐量 吞吐量是评价垃圾收集器能力的重要指标

[转帖]线上环境 Linux 系统调用追踪

线上环境 Linux 系统调用追踪 PingCAP 提到如何动态追踪进程中的系统调用,相信大家第一时间都能想到 strace,它的基本用法非常简单,非常适合用来解决 “为什么这个软件无法在这台机器上运行?” 这类问题。但如果需要分析线上服务 (特别是延迟敏感型)的某些系统调用的延迟时,strace

[转帖]中国混沌工程调查报告2021(观点摘要,调查背景和混沌工程应用现状)

https://www.jianshu.com/p/9de94066ab46 随着分布式架构的普及以及云计算技术的成熟,国内企业应用云原生化推进业务系统的迭代速度越来越快,后端系统架构日趋复杂,服务间的依赖越来越多,调用的链路越来越长。宕机引发巨额损失、严重影响用户体验的新闻层出不穷,为了让云基础设

[转帖]认识A-Tune

https://docs.openeuler.org/zh/docs/22.03_LTS_SP1/docs/A-Tune/%E8%AE%A4%E8%AF%86A-Tune.html 认识A-Tune 简介 架构 支持特性与业务模型 简介 操作系统作为衔接应用和硬件的基础软件,如何调整系统和应用配置,

[转帖]TIME_WAIT 过多导致的问题

https://www.cnblogs.com/byfboke/p/14431176.html 背景:由于秒杀业务需求,会有持续并发连接的情况 问题:鉴于成本问题,业务项目会有交叉部署的情况,某个服务的TIME_WAIT 网络连接数过多,导致了其他应用不可用 解决:基于三个层面考虑 1>调优系统网络

[转帖]TIME_WAIT 过多导致的问题

https://www.cnblogs.com/byfboke/p/14431176.html 背景:由于秒杀业务需求,会有持续并发连接的情况 问题:鉴于成本问题,业务项目会有交叉部署的情况,某个服务的TIME_WAIT 网络连接数过多,导致了其他应用不可用 解决:基于三个层面考虑 1>调优系统网络

[转帖]TiFlash 源码阅读(一) TiFlash 存储层概览

https://cloud.tencent.com/developer/article/1988629 背景 本系列会聚焦在 TiFlash 自身,读者需要有一些对 TiDB 基本的知识。可以通过这三篇文章了解 TiDB 体系里的一些概念《 说存储 》、《 说计算 》、《 谈调度 》。 今天的主角

[转帖]5、kafka监控工具Kafka-Eagle介绍及使用

https://zhuanlan.zhihu.com/p/628039102 # Apache Kafka系列文章 1、kafka(2.12-3.0.0)介绍、部署及验证、基准测试 2、java调用kafka api 3、kafka重要概念介紹及示例 4、kafka分区、副本介绍及示例 5、kafk