sysbench 命令:跨平台的基准测试工具

news2024/12/23 14:08:54

一、命令简介

sysbench 是一个跨平台的基准测试工具,用于评估系统性能,包括 CPU、内存、文件 I/O、数据库等性能。

比较同类测试工具

bench.sh

在上文 bench.sh:Linux 服务器基准测试中介绍了 bench.sh 一键测试脚本,它对新手十分友好。一键完成测试,主打一个省心。缺点是不能设置测试参数。

Clip_2024-09-26_22-23-15

sysbench

本文的 sysbench 命令填补了bench.sh的缺陷,sysbench命令则可以设置测试参数,更为灵活。

安装 sysbench

apt update
apt install sysbench

第二章“命令参数”会比较枯燥,可以直接跳到第三章,查看命令用法,以及实测结果。

二、命令参数

基本命令格式:

sysbench [测试模块] [全局选项] [命令] [测试参数]

常用测试模块:

  • cpu​:CPU 性能测试。
  • memory​:内存测试。
  • fileio​:文件 I/O 性能测试。
  • threads​:线程性能测试。
  • mutex​:互斥锁测试。
  • oltp​:OLTP(数据库)测试。

常用的全局选项:

  • --threads=N​:设置并发线程数,N​ 是线程数,默认是 1。
  • --time=N​:设置测试运行的时间(秒),默认是无限制。
  • --events=N​:设置最大事件数,测试在事件数达到 N 后结束。
  • --report-interval=N​:设置每 N 秒打印一次报告。
  • --rate=N​:每秒产生的事件数。

Sysbench 命令:

  • prepare​:准备测试环境(如创建测试文件)。
  • run​:运行测试。
  • cleanup​:清理测试环境(如删除测试文件)。

三、命令示例

准备了三台主机,电视盒子是arm架构,其余是x86架构,使用sysbench命令分别测试不同单元的跑了,并记录。

  1. 虚拟机:

    • 2C2G
    • CPU:i7 6700hq
    • ubuntu 22.04
  2. 电视盒子:

    • 4C2G
    • CPU:晶晨s905l3a。
    • 系统:armbian(ubuntu24.04)
  3. 云服务器:

    • 4C4G
    • CPU:未知
    • 系统:ubuntu 22.04

1. CPU 性能测试

实际是测试 CPU 计算质数的性能,所以不能完全代表CPU的综合性能。

单核性能
sysbench cpu --cpu-max-prime=20000 run
  • --cpu-max-prime=20000​ 表示计算 20,000 以内的质数。
  • run​ 表示运行测试。

测试结果

  • 虚拟机
CPU speed:
    events per second:   458.04

General statistics:
    total time:                          10.0020s
    total number of events:              4582

Latency (ms):
         min:                                    2.09
         avg:                                    2.18
         max:                                    3.46
         95th percentile:                        2.30
         sum:                                 9999.88

Threads fairness:
    events (avg/stddev):           4582.0000/0.00
    execution time (avg/stddev):   9.9999/0.00
  • 电视盒子
CPU speed:
    events per second:   375.26

General statistics:
    total time:                          10.0016s
    total number of events:              3755

Latency (ms):
         min:                                    2.66
         avg:                                    2.66
         max:                                    4.24
         95th percentile:                        2.66
         sum:                                 9999.37

Threads fairness:
    events (avg/stddev):           3755.0000/0.00
    execution time (avg/stddev):   9.9994/0.00
  • 云服务器
CPU speed:
    events per second:   337.99

General statistics:
    total time:                          10.0010s
    total number of events:              3381

Latency (ms):
         min:                                    2.89
         avg:                                    2.96
         max:                                    4.12
         95th percentile:                        3.02
         sum:                                 9995.00

Threads fairness:
    events (avg/stddev):           3381.0000/0.00
    execution time (avg/stddev):   9.9950/0.00
多核性能
sysbench cpu --cpu-max-prime=20000 --theads=核心数 run

把“核心数”换成你的服务器核心数,比如2,4,8。

测试结果:虚拟机>电视盒子>云服务器

  • 虚拟机
CPU speed:
    events per second:   858.40

General statistics:
    total time:                          10.0020s
    total number of events:              8587

Latency (ms):
         min:                                    2.22
         avg:                                    2.33
         max:                                   12.45
         95th percentile:                        2.43
         sum:                                19998.65

Threads fairness:
    events (avg/stddev):           4293.5000/0.50
    execution time (avg/stddev):   9.9993/0.00
  • 电视盒子
CPU speed:
    events per second:  1493.22

General statistics:
    total time:                          10.0026s
    total number of events:              14943

Latency (ms):
         min:                                    2.66
         avg:                                    2.68
         max:                                   18.54
         95th percentile:                        2.71
         sum:                                39998.98

Threads fairness:
    events (avg/stddev):           3735.7500/8.20
    execution time (avg/stddev):   9.9997/0.0
  • 云服务器
CPU speed:
    events per second:  1339.86

General statistics:
    total time:                          10.0027s
    total number of events:              13405

Latency (ms):
         min:                                    2.89
         avg:                                    2.98
         max:                                    4.71
         95th percentile:                        3.13
         sum:                                39989.84

Threads fairness:
    events (avg/stddev):           3351.2500/13.35
    execution time (avg/stddev):   9.9975/0.00

2. 内存性能测试

测试内存的读写速度:

sysbench memory --memory-block-size=1M --memory-total-size=10G run
  • --memory-block-size=1M​:每次内存读写的块大小为 1 MB。
  • --memory-total-size=10G​:总共测试 10 GB 的数据量。

测试结果:虚拟机>云服务器>电视盒子

  • 虚拟机
10240.00 MiB transferred (18088.04 MiB/sec)

General statistics:
    total time:                          0.5645s
    total number of events:              10240

Latency (ms):
         min:                                    0.05
         avg:                                    0.05
         max:                                    0.19
         95th percentile:                        0.08
         sum:                                  561.64

Threads fairness:
    events (avg/stddev):           10240.0000/0.00
    execution time (avg/stddev):   0.5616/0.00
  • 电视盒子
10240.00 MiB transferred (4792.52 MiB/sec)

General statistics:
    total time:                          2.1318s
    total number of events:              10240

Latency (ms):
         min:                                    0.21
         avg:                                    0.21
         max:                                    0.37
         95th percentile:                        0.21
         sum:                                 2126.68

Threads fairness:
    events (avg/stddev):           10240.0000/0.00
    execution time (avg/stddev):   2.1267/0.00
  • 云服务器
10240.00 MiB transferred (14686.15 MiB/sec)

General statistics:
    total time:                          0.6950s
    total number of events:              10240

Latency (ms):
         min:                                    0.06
         avg:                                    0.07
         max:                                    0.17
         95th percentile:                        0.08
         sum:                                  690.30

Threads fairness:
    events (avg/stddev):           10240.0000/0.00
    execution time (avg/stddev):   0.6903/0.00

3. 文件 I/O 性能测试

首先需要生成测试文件,然后运行 I/O 性能测试:

创建测试文件:
sysbench fileio --file-total-size=5G prepare
  • --file-total-size=5G​:生成一个 5 GB 的文件来测试。

写入速度:

  • 虚拟机
5368709120 bytes written in 4.63 seconds (1106.91 MiB/sec).
  • 电视盒子
内置mmc硬盘太小,无法完成测试。
  • 云服务器
5368709120 bytes written in 155.73 seconds (32.88 MiB/sec).
运行 I/O 测试:
sysbench fileio --file-total-size=5G --file-test-mode=rndrw --max-time=60 --max-requests=0 run
  • --file-test-mode=rndrw​:以随机读写模式测试。
  • --max-time=60​:测试持续时间为 60 秒。
  • --max-requests=0​:请求次数不限。

测试结果:虚拟机>云服务器>电视盒子

  • 虚拟机
File operations:
    reads/s:                      5385.18
    writes/s:                     3590.12
    fsyncs/s:                     11488.40

Throughput:
    read, MiB/s:                  84.14
    written, MiB/s:               56.10

General statistics:
    total time:                          60.0076s
    total number of events:              1227881

Latency (ms):
         min:                                    0.00
         avg:                                    0.05
         max:                                   28.11
         95th percentile:                        0.08
         sum:                                59288.93

Threads fairness:
    events (avg/stddev):           1227881.0000/0.00
    execution time (avg/stddev):   59.2889/0.00
  • 电视盒子
内置mmc硬盘太小,无法完成测试。
  • 云服务器
File operations:
    reads/s:                      35.77
    writes/s:                     23.85
    fsyncs/s:                     76.33

Throughput:
    read, MiB/s:                  0.56
    written, MiB/s:               0.37

General statistics:
    total time:                          60.3794s
    total number of events:              8081

Latency (ms):
         min:                                    0.00
         avg:                                    7.47
         max:                                11084.39
         95th percentile:                        0.17
         sum:                                60354.33

Threads fairness:
    events (avg/stddev):           8081.0000/0.00
    execution time (avg/stddev):   60.3543/0.00
清理测试文件:
sysbench fileio --file-total-size=5G cleanup

4. 数据库测试 (MySQL)

需要先配置 MySQL 相关选项,然后运行基准测试。

安装MySQL

sudo apt update
sudo apt install mysql-client-core-8.0 -y
sudo apt install mysql-server-8.0 -y

登录MySQL

sudo mysql -u root -p

创建测试数据库

CREATE DATABASE testdb;

退出MySQL

exit
创建测试表:
sysbench oltp_read_write --mysql-host=localhost --mysql-user=root --mysql-password=yourpassword --mysql-db=testdb --tables=10 --table-size=10000 prepare

创建速度:虚拟机>电视盒子>云服务器

运行读写测试:
sysbench oltp_read_write --mysql-host=localhost --mysql-user=root --mysql-password=yourpassword --mysql-db=testdb --tables=10 --table-size=10000 --threads=8 --time=60 run
  • --tables=10​:测试表的数量。
  • --table-size=10000​:每个表的行数。
  • --threads=8​:使用 8 个线程。
  • --time=60​:测试持续时间为 60 秒。
清理测试表:
sysbench oltp_read_write --mysql-host=localhost --mysql-user=root --mysql-password=yourpassword --mysql-db=testdb cleanup

测试结果:虚拟机>电视盒子>云服务器

  • 虚拟机
SQL statistics:
    queries performed:
        read:                            360430
        write:                           102980
        other:                           51490
        total:                           514900
    transactions:                        25745  (428.94 per sec.)
    queries:                             514900 (8578.78 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          60.0187s
    total number of events:              25745

Latency (ms):
         min:                                    5.67
         avg:                                   18.64
         max:                                  104.16
         95th percentile:                       27.66
         sum:                               479997.75

Threads fairness:
    events (avg/stddev):           3218.1250/14.90
    execution time (avg/stddev):   59.9997/0.01
  • 电视盒子
SQL statistics:
    queries performed:
        read:                            117348
        write:                           33528
        other:                           16764
        total:                           167640
    transactions:                        8382   (139.60 per sec.)
    queries:                             167640 (2791.97 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          60.0391s
    total number of events:              8382

Latency (ms):
         min:                                   23.51
         avg:                                   57.28
         max:                                  219.09
         95th percentile:                       92.42
         sum:                               480099.51

Threads fairness:
    events (avg/stddev):           1047.7500/5.21
    execution time (avg/stddev):   60.0124/0.01
  • 云服务器
SQL statistics:
    queries performed:
        read:                            6818
        write:                           1948
        other:                           974
        total:                           9740
    transactions:                        487    (7.98 per sec.)
    queries:                             9740   (159.60 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          61.0263s
    total number of events:              487

Latency (ms):
         min:                                   89.65
         avg:                                  999.24
         max:                                 5688.30
         95th percentile:                     3841.98
         sum:                               486629.54

Threads fairness:
    events (avg/stddev):           60.8750/1.69
    execution time (avg/stddev):   60.8287/0.07

这台云服务器实在太垃圾了,虽然一年的价格只要20块。CPU和数据库性能被电视盒子暴打。此外它是纯ipv6,使用起来颇多不便。只能说不测不知道,一测吓一跳。

电视盒子(armbian Linux)

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2168767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CAT1 RTU软硬件设计开源资料分析(TCP协议+Modbus协议+GNSS定位版本 )

01 CAT1 RTU方案简介: 远程终端单元( Remote Terminal Unit,RTU),一种针对通信距离较长和工业现场环境恶劣而设计的具有模块化结构的、特殊的计算机测控单元,它将末端检测仪表和执行机构与远程控制中心相连接。 奇迹TCP RTUGNS…

【MySQL】数据库--索引

索引 1.索引 在数据中索引最核心的作用就是:加速查找 1.1 索引原理 索引的底层是基于BTree的数据存储结构 如图所示: 很明显,如果有了索引结构的查询效率比表中逐行查询的速度要快很多且数据越大越明显。 数据库的索引是基于上述BTree的…

C--结构体和位段的使用方法

各位看官如果您觉得这篇文章对您有帮助的话 欢迎您分享给更多人哦 感谢大家的点赞收藏评论,感谢您的支持!!! 一:结构体 首先结构体我们有一个非常重要的规则 非常重要: 我们允许在初始化时自动将字符串字面…

Jmeter关联,断言,参数化

一、关联 常用的关联有三种 1.边界提取器 2.JSON提取器 3.正则表达式提取器 接下来就详细讲述一下这三种的用法 这里提供两个接口方便练习 登录接口 接口名称:登录 接口提交方式:POST 接口的url地址:https://admin-api.macrozheng.com/a…

部署Tomcat服务

一、部署过程 1. 节点规划 节点IP 主机名 节点 192.168.20.20 tomcat Tomcat 2. 基础环境配置 2.1. 修改主机名 [rootlocalhost ~]# hostnamectl set-hostname tamcat [rootlocalhost ~]# bash 2.2. 关闭防火墙 [roottamcat ~]# systemctl stop firewalld [roott…

嵌入式单片机底层原理详解

前言 此笔记面向有C语言基础、学习过数字电路、对单片机有一定了解且尚在学习阶段的群体编写,笔记中会介绍单片机的结构、工作原理,以及一些C语言编程技巧,对于还停留在复制模板、copy代码阶段的读者会有比较大的帮助,待学习完成后可以独立完成几乎所有单片机的驱动开发。 …

macOS安装MySQL教程, 2024年9月26日更新, 亲测有效, 附有百度网盘下载链接

下载: https://dev.mysql.com/downloads/mysql/ 选第一个 DMG版本的. 这一步可能需要登录一下, 比较麻烦, 一会儿我传到百度网盘, 文末发百度网盘的链接. 点击下载按钮, 会弹出下载提示. 开始下载了, 很慢. 复制链接地址, 使用迅雷下载. 稍微快点. 我传到了百度网盘: 通过网…

Java List类

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:Java 目录 👉🏻List1. 接口与实现2. 特性3. 常用方法4. 示例代码5. 遍历6. 线程安全 👉🏻List Java的 List …

【含文档】基于Springboot+微信小程序 的高校社团管理小程序(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

菱形继承、菱形虚拟继承、菱形继承中多态问题、菱形虚拟继承中多态问题

菱形继承以及菱形继承中的多态问题 一、对象模型(一)菱形继承 & 菱形虚拟继承(一)菱形继承中多态 & 菱形虚拟继承中多态 二、总结 本文主要叙述菱形继承、菱形虚拟继承、菱形继承中多态、菱形虚拟继承中多态,这…

JavaWeb 13.HTTP协议

和自己的情绪共处,永远保持乐观 —— 24.9.26 一、HTTP简介 HTTP 超文本传输协议 (HTTP-Hyper Text transfer protocol),是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出&a…

STL之vector篇(下)(手撕底层代码,从零实现vector的常用指令,深度剖析并优化其核心代码)

文章目录 1.基本结构与初始化1.1 空构造函数的实现与测试1.2 带大小和默认值的构造函数1.3 使用迭代器范围初始化的构造函数(建议先看完后面的reserve和push_back)1.4 拷贝构造函数1.5 赋值操作符的实现(深拷贝)1.6 析构函数1.7 begin 与 end 迭代器 2. …

jQuery——层次选择器

1、层次选择器:查找子元素,后代元素,兄弟元素的选择器。 ancestor descendant:在给定的祖先元素下匹配所有的后代元素 parent > child:在给定的父元素下匹配所有的子元素 prev next:匹配所有紧接在…

每日一练:二叉树的右视图

199. 二叉树的右视图 - 力扣(LeetCode) 一、题目要求 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,…

超详细的 pytest教程 之前后置方法和 fixture 机制

前言 这一篇文章专门给大家讲解pytest中关于用例执行的前后置步骤处理,pytest中用例执行的前后置处理既可以通过测试夹具(fixtrue)来实现,也可以通过xunit 风格的前后置方法来实现。接下来我们一起看看如何具体使用。 一、xunit 风格的前后置方法 1、函数用例的前…

基于STM32的智能家庭安全监控系统

目录 引言项目背景环境准备 硬件准备软件安装与配置系统设计 系统架构关键技术代码示例 传感器数据采集摄像头监控与数据处理实时报警功能实现应用场景结论 1. 引言 智能家庭安全监控系统使用嵌入式设备,如STM32微控制器,来实时监控家庭环境。通过集成…

[教程]如何在iPhone上启用中国移动/联通/电信RCS消息

目前 苹果已经在 iOS 18 中带来 RCS 富媒体消息的支持,该消息基于网络传递,用户可以通过 RCS 免费将消息发送到其他 iPhone 或 Android 设备。在苹果面向测试版用户推出的 iOS 18.1 Beta 版中,中国网络运营商包括中国移动、中国联通、中国电信…

文献笔记 - Ground effect on rotorcraft unmanned aerial vehicles: a review

这篇博文是自己看文章顺手做的笔记 只是简单翻译和整理 仅做个人参考学习和分享 如果作者看到觉得内容不妥请联系我 我会及时处理 本人非文章作者,文献的引用格式如下,原文更有价值 摘要—— 收集和讨论小型多旋翼无人机受地面效应的影响,…

阿b的弹幕如何获取?这个可以帮到你!

弹幕 前几天,做了一个b站弹幕的爬取,只需要输入一个bv号,就可以查看这个视频的弹幕,并且提供了一种可以写入到文件的方法。但是有人反应,这种使用仍然非常困难,应该提供一个更加友好的用户界面。 因此本期…

共享单车轨迹数据分析:以厦门市共享单车数据为例(八)

副标题:基于POI数据的站点综合评价——以厦门市为例(三) 什么是优劣解距离法(TOPSIS)? 优劣解距离法(Technique for Order Preference by Similarity to Ideal Solution,简称TOPSI…