1. lmBench 介绍

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

lmbench是个用于评价系统综合性能的多平台开源benchmark,能够测试包括文档读写、内存操作、进程创建销毁开销、网络等性能,测试方法简单。

lmbench是个多平台软件,因此能够对同级别的系统进行比较测试,反映不同系统的优劣势,通过选择不同的库函数我们就能够比较库函数的性能;更为重要的是,作为一个开源软件,lmbench提供一个测试框架,假如测试者对测试项目有更高的测试需要,能够通过少量的修改源代码达到目的(比如现在只能评测进程创建、终止的性能和进程转换的开销,通过修改部分代码即可实现线程级别的性能测试)。

带宽测评工具

—读取缓存文件

—拷贝内存

—读内存

—写内存

—管道

—TCP

反应时间测评工具

  • 上下文切换
  • 网络: 连接的建立,管道,TCP,UDP和RPC hot potato
  • 文件系统的建立和删除
  • 进程创建
  • 信号处理
  • 上层的系统调用
  • 内存读入反应时间

其他

  • 处理器时钟比率计算

2. 编译 lmbench

首先现在并编译 libtirpc ,然后安装。

下载lmbench源码 LMbench,解压及编译lmbench。修改编译脚本:

# src/Makefile
$O/lmbench : ../scripts/lmbenc
# scripts/build
LDLIBS="-lm -ltirpc"
CFLAGS="-I/usr/include/tirpc"
// src/disk.c
// llseek 修改为 lseek
int seekto(int fd, uint64 off)
{
if (lseek(fd, (loff_t)off, SEEK_SET) == (loff_t)-1) {
return(-1);
}
return (0);
}

编译命令:

make OS=$OS  build

其中,环境变量 OS="\({MACHINE}-\){SYSTEM}" 。本机的话,MACHINE用 uname -m 取得; SYSTEM通过 uname -s 拼接而成。

编译完成后,在 bin/$OS 目录下生成 lmbench 可执行文件,所有测试均由 lmbench 执行。

  1. 配置及测试

在 scripts 目录下,有一个 run-config 脚本文件,该脚本配置 lmbench 。先运行该脚本,设定一些选项,再运行 lmbench 进行测试。

cd scripts
env OS="$OS" ./config-run
export PATH=$PATH:/lmbench3/bin/$OS # lmbench 添加到 PATH # 脚本lmbench/results会启动我们的测试
env OS="$OS" BENCHMARK_OS=YES ./results # BENCHMARK_OS 可选

参考

最新文章

  1. 整合Servlet到Spring容器
  2. POJ C Looooops
  3. 借助取色工具ColorPix对Pycharm编辑器设定自己喜欢的代码颜色_20161202
  4. 建字段_添加数据_生成json.php
  5. ppm与mg/m3转换
  6. [SQL]向3个表插入数据的存储过程 和 C# 代码
  7. bzoj 2707 [SDOI2012]走迷宫(SCC+高斯消元)
  8. 杭电 1795 The least one
  9. python新手之一环境安装
  10. Hive 2.1.1 学习笔记
  11. luogu3391
  12. Scala-Unit7-Scala并发编程模型AKKA
  13. cocos2d-x C++ 原始工程引擎运行机制解析
  14. Zabbix监控Zookeeper健康状况
  15. git push报错error: failed to push some refs to 'git@github.com'
  16. Java之优先队列
  17. Devexpress RichEditControl 导入word文件后字体变为方正姚体的解决方案
  18. js判断用户是否离开当前页面
  19. Linux内核(2) - 分析内核源码如何入手(上)
  20. SSL 证书配置nginx

热门文章

  1. KingbaseES 查询计划剖析
  2. Java 中HashMap 详解
  3. RedHat Linux升级内核
  4. void指针;函数指针
  5. 从Kubernetes Event中提取有效信息
  6. Centos7新增静态路由
  7. Logstash集成GaussDB(高斯DB)数据到Elasticsearch
  8. Beats processors
  9. NSIS 自定义安装界面准确获取安装进度完美解决方案
  10. Petrozavodsk Winter Training Camp 2016: Moscow SU Trinity Contest