简介

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测试方法和下载的更多相关文章

  1. [转帖]国产CPU性能最全盘点 宜良性竞争优胜劣汰

    国产CPU性能最全盘点 宜良性竞争优胜劣汰 电子工程专辑的网站内容 其实里面说的不尽全面 比如龙芯和申威就放到一块了 一个是 MIPS 一个是Alpha 明显不一样的东西 x86的应该都不行 而且. ...

  2. Android性能优化-减小图片下载大小

    原文链接 https://developer.android.com/topic/performance/network-xfer.html 内容概要 理解图片的格式 PNG JPG WebP 如何选 ...

  3. Java应用异常状态监测

    阿里巴巴中间件技术专栏 老板最近分派了一个任务,说线上客户在部署应用的时候发生了系统级别的OOM,触发了OOM Killer杀掉了应用,让我们解决这个问题. 对于这个任务,我从如下几点开始调研.分析与 ...

  4. linux 性能测试工具Lmbench

    Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽.Lmbench旨在使系统开发者深入了解关键操作的基础成 ...

  5. [基准测试]----lmbench

    引言 要评价一个系统的性能,通常有不同的指标,相应的会有不同的测试方法和测试工具,一般来说为了确保测试结果的公平和权威性,会选用比较成熟的商业测试软件.但在特定情形下,只是想要简单比较不同系统或比较一 ...

  6. lmbench的使用方法

    一.引言 要评价一个系统的性能,通常有不同的指标,相应的会有不同的测试方法和测试工具,一般来说为了确保测试结果的公平和权威性,会选用比较成熟的商业测试软件.但在特定情形下,只是想要简单比较不同系统或比 ...

  7. 下载: www.bitmover.com/lmbench,最新版本3.0-a9

    软件说明: lmbench是个用于评价系统综合性能的多平台开源benchmark,能够测试包括文档读写.内存操作.进程创建销毁开销.网络等性能,测试方法简单.Lmbench是个多平台软件,因此能够对同 ...

  8. (工具) 性能测试基准软件 lmBench (待补充)

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

  9. PHP函数的实现原理及性能分析

    前言 在任何语言中,函数都是最基本的组成单元.对于php的函数,它具有哪些特点?函数调用是怎么实现的?php函数的性能如何,有什么使用建议?本文将从原理出发进行分析结合实际的性能测试尝试对这些问题进行 ...

  10. 关于Linux系统调用,内核函数【转】

    转自:http://blog.csdn.net/ubuntulover/article/details/5988220 早上听人说到某个程序的一部分是内核态,另一部分是用户态,需要怎么怎么.当时突然想 ...

随机推荐

  1. 【技术总结】从Hash索引到LSM树

    摘要:本文将从实现最简单的Key-Value数据库讲起,然后针对实现过程中遇到的一些瓶颈,采用上述的索引技术,对数据库进行优化,以此达到对数据库的索引技术有一个较为深刻的理解. 前言 数据库算是软件应 ...

  2. Go语言微服务开发框架:Go chassis

    摘要:分布式系统中每个进程的动态配置管理及运行时热加载就成为了一个亟待解决的问题.go chassis汲取了netflix的archaius框架经验,并做出来自己的创新特性. 引言 https://g ...

  3. 华为云IoT设备接入服务全体验

    摘要:华为云IoT设备接入服务,海量设备,一键接入,你值得拥有! 本文分享自华为云社区<[云驻共创]Huawei Mate 40产线直击之 华为云IoT设备接入服务全体验>,原文作者:启明 ...

  4. selenium 访问无等待

    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities desired_capabilities ...

  5. 解密Prompt系列1. Tunning-Free Prompt:GPT2 & GPT3 & LAMA & AutoPrompt

    借着ChatGPT的东风,我们来梳理下prompt范式的相关模型.本系列会以A Systematic Survey of Prompting Methods in Natural Language P ...

  6. # github.com/coreos/etcd/clientv3/balancer/resolver/endpoint

    linux使用go连接etcd集群时报错: # github.com/coreos/etcd/clientv3/balancer/resolver/endpoint /root/go/pkg/mod/ ...

  7. 销售订单BAPI增强

    一.需求背景 在销售订单批导时,需要调用BAPI:BAPI_SALESORDER_CREATEFROMDAT2维护成本中心字段, 二.增强实现 BAPI中没有该字段,需要通过增强的方式导入.通过BAP ...

  8. 第十二届蓝桥杯C++B组 A~H题题解

    本次题解格式参考 墨羽魂韶 本文所用的试题: 第十二届蓝桥杯大赛软件赛省赛_CB.pdf 最后编辑时间 2021年4月29日 21:27:46 2022 年 4月 8号 15点13分 填空题答案速览 ...

  9. paddlespeech asr脚本demo

    概述 paddlespeech是百度飞桨平台的开源工具包,主要用于语音和音频的分析处理,其中包含多个可选模型,提供语音识别.语音合成.说话人验证.关键词识别.音频分类和语音翻译等功能. 本文介绍利用p ...

  10. 自动化测试复习巩固第一天,requests的用法

    如何快速发送post请求 因为我用的python语言,所以大家需要在本地安装python语言和pycharm,如何安装请自行查找教程,这里不做过多赘述 这里需要提前下载安装好需要的第三方库reques ...