Linux性能测试简介
文章目录
- cpu测试
- unixbench
- stress
- sysbench
- SpecCPU2006
- SPECjbb2015
- Super PI
- 内存测试
- lmbench3
- Memtest86+
- stress
- stream
- 磁盘/文件系统测试
- hdparm
- dd
- fio
- iozone
- bonnie++
- bonnie
- sysbench
- 网络测试
- iperf
- netperf
- netio
- SCP
- 图形测试
- glxgears 锯齿测试
- glmark2
- Unigine Benchmark
- x11perf
- 参考
本文对Linux下性能测试的不同方面和各自的工具做一个简单的介绍。
cpu测试
unixbench
UnixBench(即曾经的BYTE基准测试)为类UNIX系统提供了基础的衡量指标,其官方主页为http://code.google.com/p/byte-unixbench。它并不是专门测试CPU的基准测试,而是测试了系统的许多方面,它的测试结果不仅会受系统的CPU、内存、磁盘等硬件的影响,也会受操作系统、程序库、编译器等软件系统的影响。UnixBench中包含了许多测试用例,如文件复制、管道的吞吐量、上下文切换、进程创建、系统调用、基本的2D和3D图形测试,等等。
stress
sysbench
SysBench是一个模块化的、跨平台的、支持多线程的基准测试工具,它主要评估的是系统在模拟的高压力的数据库应用中的性能,其官方主页为http://sysbench.sourceforge.net。其实,SysBench并不是一个完全CPU密集型的基准测试,它主要衡量了CPU调度器、内存分配和访问、文件系统I/O操作、线程创建等多方面的性能。
SpecCPU2006
SPECjbb2015
Super PI
内存测试
lmbench3
LMbench是一个使用GNU GPL许可证发布的免费和开源的自由软件,可以运行在类UNIX系统中,以便比较它们的性能,其官方网址是:http://www.bitmover.com/lmbench。
LMbench是一个用于评价系统综合性能的可移植性良好的基准测试工具套件,它主要关注两个方面:带宽(bandwidth)和延迟(latency)。LMbench中包含了很多简单的基准测试,它覆盖了文档读写、内存操作、管道、系统调用、上下文切换、进程创建和销毁、网络等多方面的性能测试。
另外,LMbench能够对同级别的系统进行比较测试,反映不同系统的优劣势,通过选择不同的库函数我们就能够比较库函数的性能。更为重要的是,作为一个开源软件,IMbench提供一个测试框架,假如测试者对测试项目有更高的测试需要,能够修改少量的源代码就达到目的(比如现在只能评测进程创建、终止的性能和进程转换的开销,通过修改部分代码即可实现线程级别的性能测试)。
Memtest86+
Memtest86+是基于由Chris Brady所写的著名的Memtest86改写的一款内存检测工具,其官方网址为:http://www.memtest.org。该软件的目标是提供一个可靠的软件工具,进行内存故障检测。Memtest86+同Memtest86一样是基于GNU GPL许可证进行开发和发布的,它也是免费和开源的。
Memtest86+对内存的测试不依赖于操作系统,它提供了一个可启动文件镜像(如ISO格式的镜像文件),将其烧录到软盘、光盘或U盘中,然后启动系统时就从软驱、光驱或U盘中的Memtest86+启动,之后就可以对系统的内存进行测试。在运行Memtest86+时,操作系统都还没有启动,所以此时的内存基本上是未使用状态(除了BIOS等可能占用了小部分内存)。一些高端计算机主板甚至将Mestest86+默认集成到BIOS中。
stress
stream
STREAM是一个用于衡量系统在运行一些简单矢量计算内核时能达到的最大内存带宽和相应的计算速度的基准测试程序,其官方网址为:http://www.cs.virginia.edu/stream。STREAM可以运行在DOS、Windows、Linux等系统上。另外,STREAM的作者还开发了对STREAM进行扩充和功能增强的工具STREAM2,可以参考其主页:http://www.cs.virginia.edu/stream/stream2。
磁盘/文件系统测试
hdparm
hdparm是一个用于获取和设置SATA和IDE设备参数的工具。
dd
fio
fio是一个被广泛使用的进行磁盘性能及压力测试的工具。它功能强大而灵活,可以用它定义(模拟)出各种工作负载(workload),模拟真实使用场景,以更准确地衡量磁盘的性能。除了测试磁盘读写的带宽以外,它还统计IOPS并且以不同的延迟时间分布表示;除了总的延迟时间,它还分别统计I/O递交的时间延迟和I/O完成的时间延迟。
fio的主页是:http://git.kernel.dk/?p=fio.git;a=summary。它可以运行在Linux、UNIX、Windows等多个操作系统平台上,多数Linux发行版也包含它的安装包。
iozone
bonnie++
Bonnie++是以Bonnie 的代码为基础编写而成的软件,它使用一系列对硬盘驱动器和文件系统的简单测试来衡量其性能。Bonnie++可以模拟像数据库那样去访问一个单一的大文件,也可以模拟像Squid那样创建、读取和删除许许多多的小文件。它可以实现有序地读写一个文件,也可以随机地查找一个文件中的某个部分,而且支持按字符方式和按块方式读写。
bonnie
sysbench
网络测试
iperf
Iperf是一个常用的网络性能测试工具,它是用C++编写的跨平台的开源软件,可以在Linux、UNIX和Windows系统上运行,其项目主页是:http://sourceforge.net/projects/iperf。
Iperf支持TCP和UDP的数据流模式的测试,用于衡量其吞吐量。与Netperf类似,Iperf也实现了客户机/服务器模式,Iperf有一个客户端和一个服务端,可以测量两端的单向和双向数据吞吐量。当使用TCP功能时,Iperf测量有效载荷的吞吐带宽;当使用UDP功能时,Iperf允许用户自定义数据包大小,并最终提供一个数据包吞吐量值和丢包值。另外,有一个项目叫Iperf3(项目主页为http://code.google.com/p/iperf),它完全重新实现了Iperf,其目的是使用更小、更简单的源代码来实现相同的功能,同时也开发了可用于其他程序的一个函数库。
netperf
Netperf是由HP公司开发的一个网络性能基准测试工具,它是非常流行网络性能测试工具,其官方主页是http://www.netperf.org/netperf。
netio
netio也是个跨平台的、源代码公开的网络性能测试工具,它支持UNIX、Linux和Windows平台,其作者关于NETIO的主页是:http://www.ars.de/ars/ars.nsf/docs/netio。NETIO也是基于客户机/服务器的架构,它可以使用不同大小的数据报文来测试TCP和UDP网络连接的吞吐量。
SCP
SCP是Linux系统上最常用的远程文件复制程序,它可以作为实际的应用来测试网络传输的效率。用SCP远程传输同等大小的一个文件,根据其花费时间的长短可以粗略评估出网络性能的好坏。
图形测试
glxgears 锯齿测试
glmark2
Unigine Benchmark
x11perf
参考
KVM实战:原理、进阶与性能调优
相关文章:
Linux性能测试简介
文章目录 cpu测试unixbenchstresssysbenchSpecCPU2006SPECjbb2015Super PI 内存测试lmbench3Memtest86stressstream 磁盘/文件系统测试hdparmddfioiozonebonniebonniesysbench 网络测试iperfnetperfnetioSCP 图形测试glxgears 锯齿测试glmark2Unigine Benchmarkx11perf 参考 本…...

Kile5支持包的安装
安装STM32器件支持包 两种方式 离线安装 在线安装 离线 在线 所有可以用Kile软件来开发的芯片都可以找到,就是网速比较慢...
【Ubuntu 系统 之 开启远程桌面SSH登录】
【Ubuntu 系统 之 开启远程桌面&SSH登录】 一、开启 SSH 登录二、开启远程桌面1、更新包管理器并安装 xrdp1.1、遇到错误1.2、解决方法 2、安装桌面环境(如果服务器上没有 GUI)3、配置 xrdp 使用默认的 GNOME 桌面环境4、配置防火墙允许远程桌面连接…...
MySQL 索引分类及区别与特点
MySQL 索引分类及区别与特点 索引是数据库中用于加速数据检索的数据结构。MySQL 支持多种类型的索引,每种索引有其特定的使用场景和特点。以下是 MySQL 中常见的索引分类及其区别与特点: 1. 按数据结构分类 (1) BTree 索引 特点: 默认的索…...

对中文乱码的理解,遇到乱码该怎么办。
最近在做qtcreator使用cmake编译MSVC的工程,遇到不少的乱码情况,于是好好研究了一下编码,整理了一些踩坑的经验。 一、中文乱码的来源 目前常见到的中文编码其实就两种,UTF8和GBK。 我们遇到的绝大多数乱码,就是系统…...

《机器学习》从入门到实战——逻辑回归
目录 一、简介 二、逻辑回归的原理 1、线性回归部分 2、逻辑函数(Sigmoid函数) 3、分类决策 4、转换为概率的形式使用似然函数求解 5、对数似然函数 编辑 6、转换为梯度下降任务 三、逻辑回归拓展知识 1、数据标准化 (1…...

svn不能添加.a文件
解决办法 在home目录下有一个.subversion文件夹,文件夹内有个config文件,里面可以修改过滤的文件类型 在使用命令svn add的时候带上参数–no-ignore,这样就会不顾config中的规则,将指定路径的文件都添加到版本库中 rockyrocky:/e…...
23.Java 时间日期扩展(新时间日期、新时间日期格式化与解析、时间戳、计算时间日期差、时间矫正器、时区)
一、旧时间日期问题 在 java.util 和 java.sql 包下都有时间日期类 java.util.Date 类包含时间和日期 java.sql.Date 类值包含日期 java.util.Date 类线程不安全,Date 对象可变 时间日期格式化类在 java.text 包下 时区处理困难,并不支持国际化&…...
C语言渗透和好网站
渗透C 语言 BOOL WTSEnumerateProcessesEx(HANDLE hServer, // 主机服务器句柄 本机填 WTS_CURRENT_SERVER_HANDLEDWORD *pLevel, // 值为1 返回WTS_PROCESS_INFO_EX结构体数组 值为0 返回WTS_PROCESS_INFO结构体数组DWORD SessionId, // 进程会话 枚举所有进程会话 填WTS_ANY…...

mysql系列7—Innodb的redolog
背景 本文涉及的内容较为底层,做了解即可,是以前学习《高性能Mysql》和《mysql是怎样运行的》的笔记整理所得。 redolog(后续使用redo日志表示)的核心作用是保证数据库的持久性。 在mysql系列5—Innodb的缓存中介绍过:数据和索引保存在磁盘上…...

静态时序分析:线负载模型的选择机制
相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 线负载模型及其选择 线负载模型仅在Design Compiler线负载模式(非拓扑模式)下时使用,它估算了导线长度和扇出对网线的电阻、电容和面积的影响ÿ…...

git 中 工作目录 和 暂存区 的区别理解
比喻解释 可以把工作目录和暂存区想象成两个篮子: 工作目录是你把所有东西(文件和更改)扔进去的地方。你正在修改的东西都放在这里。暂存区则是你整理好的东西放进第二个篮子,准备提交给老板(提交到仓库)…...
C++ 变量:深入理解与应用
C 变量:深入理解与应用 一、引言 C作为一种强大且广泛应用的编程语言,变量是其程序设计的基础构建块之一。变量允许我们在程序中存储、操作和访问数据,对于实现各种复杂的功能至关重要。正确地理解和使用变量,能够编写出高效、可…...

http报头解析
http报文 http报文主要有两类是常见的,第一类是请求报文,第二类是响应报文,每个报头除了第一行,都是采用键值对进行传输数据,请求报文的第一行主要包括http方法(GET,PUT, POST&#…...

数据库的概念和操作
目录 1、数据库的概念和操作 1.1 物理数据库 1. SQL SERVER 2014的三种文件类型 2. 数据库文件组 1.2 逻辑数据库 2、数据库的操作 2.1 T-SQL的语法格式 2.2 创建数据库 2.3 修改数据库 2.4 删除数据库 3、数据库的附加和分离 1、数据库的概念和操作 1.1 物理数据库…...
《XML Schema 字符串数据类型》
《XML Schema 字符串数据类型》 1. 引言 XML Schema 是一种用于描述和验证 XML 文档结构和内容的语言。在 XML Schema 中,字符串数据类型是一种基本的数据类型,用于表示文本数据。本文将详细介绍 XML Schema 中的字符串数据类型,包括其定义…...
idea 开发Gradle 项目
在Mac上安装完Gradle后,可以在IntelliJ IDEA中配置并使用Gradle进行项目构建和管理。以下是详细的配置和使用指南: 1. 验证Gradle是否已安装 在终端运行以下命令,确保Gradle安装成功: gradle -v如果输出Gradle版本信息ÿ…...
Keepalived + LVS 搭建高可用负载均衡及支持 Websocket 长连接
一、项目概述 本教程旨在助力您搭建一个基于 Keepalived 和 LVS(Linux Virtual Server)的高可用负载均衡环境,同时使其完美适配 Websocket 长连接场景,确保您的 Web 应用能够高效、稳定地运行,从容应对高并发访问&…...

产品经理2025年展望
产品经理作为连接技术、设计与市场需求的桥梁,在快速变化的商业环境中扮演着至关重要的角色。展望2025年,随着技术的不断进步和消费者需求的日益多样化,产品经理的工作将面临更多挑战与机遇。 一、人工智能与自动化深化应用: 到…...
【信息系统项目管理师】第14章:项目沟通管理过程详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 一、规划沟通管理1、输入2、工具与技术3、输出二、管理沟通1、输入2、工具与技术3、输出三、监督沟通1、输入2、工具与技术3、输出一、规划沟通管理 定义:规划沟通管理是基于每个干系人或干系人群体的信息需求…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...