[转帖]基本系统调用性能lmbench测试方法和下载
简介
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】获取下载地址。
[转帖]基本系统调用性能lmbench测试方法和下载的更多相关文章
- [转帖]国产CPU性能最全盘点 宜良性竞争优胜劣汰
国产CPU性能最全盘点 宜良性竞争优胜劣汰 电子工程专辑的网站内容 其实里面说的不尽全面 比如龙芯和申威就放到一块了 一个是 MIPS 一个是Alpha 明显不一样的东西 x86的应该都不行 而且. ...
- Android性能优化-减小图片下载大小
原文链接 https://developer.android.com/topic/performance/network-xfer.html 内容概要 理解图片的格式 PNG JPG WebP 如何选 ...
- Java应用异常状态监测
阿里巴巴中间件技术专栏 老板最近分派了一个任务,说线上客户在部署应用的时候发生了系统级别的OOM,触发了OOM Killer杀掉了应用,让我们解决这个问题. 对于这个任务,我从如下几点开始调研.分析与 ...
- linux 性能测试工具Lmbench
Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽.Lmbench旨在使系统开发者深入了解关键操作的基础成 ...
- [基准测试]----lmbench
引言 要评价一个系统的性能,通常有不同的指标,相应的会有不同的测试方法和测试工具,一般来说为了确保测试结果的公平和权威性,会选用比较成熟的商业测试软件.但在特定情形下,只是想要简单比较不同系统或比较一 ...
- lmbench的使用方法
一.引言 要评价一个系统的性能,通常有不同的指标,相应的会有不同的测试方法和测试工具,一般来说为了确保测试结果的公平和权威性,会选用比较成熟的商业测试软件.但在特定情形下,只是想要简单比较不同系统或比 ...
- 下载: www.bitmover.com/lmbench,最新版本3.0-a9
软件说明: lmbench是个用于评价系统综合性能的多平台开源benchmark,能够测试包括文档读写.内存操作.进程创建销毁开销.网络等性能,测试方法简单.Lmbench是个多平台软件,因此能够对同 ...
- (工具) 性能测试基准软件 lmBench (待补充)
1. lmBench 介绍 Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽.Lmbench旨在使系统开 ...
- PHP函数的实现原理及性能分析
前言 在任何语言中,函数都是最基本的组成单元.对于php的函数,它具有哪些特点?函数调用是怎么实现的?php函数的性能如何,有什么使用建议?本文将从原理出发进行分析结合实际的性能测试尝试对这些问题进行 ...
- 关于Linux系统调用,内核函数【转】
转自:http://blog.csdn.net/ubuntulover/article/details/5988220 早上听人说到某个程序的一部分是内核态,另一部分是用户态,需要怎么怎么.当时突然想 ...
随机推荐
- 详解CCE服务:一站式告警配置和云原生日志视图
本文分享自华为云社区<新一代云原生可观测平台之CCE服务日志和告警篇>,作者:云容器大未来. 告警和日志是运维人员快速定位问题.恢复异常的主要手段.运维人员日常的工作模式往往是先接收告警信 ...
- GaussDB(DWS)查询过滤器原理与应用
摘要:GaussDB(DWS)查询过滤器(黑名单)提供查询过滤功能,支持自动隔离反复被终止的查询,防止烂SQL再次执行. 本文分享自华为云社区<GaussDB(DWS)查询过滤器原理与应用> ...
- 云图说|图解DGC:基于华为智能数据湖解决方案的一体化数据治理平台
摘要:数据湖治理中心DGC,帮助企业快速构建从数据集成到数据服务的端到端智能数据系统,消除数据孤岛,统一数据标准,加快数据变现,实现数字化转型. 本文分享自华为云社区<[云图说]第232期 图解 ...
- 火山引擎DataLeap的Data Catalog系统搜索实践 (上)
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 摘要 火山引擎大数据研发治理套件 DataLeap的Data Catalog系统通过汇总和组织各种元数据,解决了数 ...
- PPT 模仿力,看到好的设计随意为我所用
PPT 模仿力,看到好的设计随意为我所用 网上搜索一些作品 Q1: 这一页的设计亮点在哪? Q2: 我能不能用在PPT里面? Q3: 我能不能用PPT模仿出来? 举例 思源黑体
- Java | VS Code 如何导入外部 jar 包源
Java Extension Pack里的Project Manager for Java扩展,安装后在文档查看的下方会有"JAVA PROJECTS",在Referenced L ...
- Java 多线程上下文传递在复杂场景下的实践
一.引言 海外商城从印度做起,慢慢的会有一些其他国家的诉求,这个时候需要我们针对当前的商城做一个改造,可以支撑多个国家的商城,这里会涉及多个问题,多语言,多国家,多时区,本地化等等.在多国家的情况下如 ...
- jdk1.8:stream流式分组groupby
package com.example.apidemo.jdk18; import java.math.BigDecimal; import java.util.Arrays; import java ...
- 通过部署流行 Web 框架掌握 Serverless 技术
大家好,我是霍大侠,本篇我们通过学习部署流行 Web 框架,如 Spring Boot,Express,Web IDE,让你掌握 Serverless 函数计算架构和技术,领略弹性并发.高可用的好处. ...
- 八、docker-file自动构建docker镜像
系列导航 一.docker入门(概念) 二.docker的安装和镜像管理 三.docker容器的常用命令 四.容器的网络访问 五.容器端口转发 六.docker数据卷 七.手动制作docker镜像 八 ...