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

一、命令简介

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.04General statistics:total time:                          10.0020stotal number of events:              4582Latency (ms):min:                                    2.09avg:                                    2.18max:                                    3.4695th percentile:                        2.30sum:                                 9999.88Threads fairness:events (avg/stddev):           4582.0000/0.00execution time (avg/stddev):   9.9999/0.00
  • 电视盒子
CPU speed:events per second:   375.26General statistics:total time:                          10.0016stotal number of events:              3755Latency (ms):min:                                    2.66avg:                                    2.66max:                                    4.2495th percentile:                        2.66sum:                                 9999.37Threads fairness:events (avg/stddev):           3755.0000/0.00execution time (avg/stddev):   9.9994/0.00
  • 云服务器
CPU speed:events per second:   337.99General statistics:total time:                          10.0010stotal number of events:              3381Latency (ms):min:                                    2.89avg:                                    2.96max:                                    4.1295th percentile:                        3.02sum:                                 9995.00Threads fairness:events (avg/stddev):           3381.0000/0.00execution time (avg/stddev):   9.9950/0.00
多核性能
sysbench cpu --cpu-max-prime=20000 --theads=核心数 run

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

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

  • 虚拟机
CPU speed:events per second:   858.40General statistics:total time:                          10.0020stotal number of events:              8587Latency (ms):min:                                    2.22avg:                                    2.33max:                                   12.4595th percentile:                        2.43sum:                                19998.65Threads fairness:events (avg/stddev):           4293.5000/0.50execution time (avg/stddev):   9.9993/0.00
  • 电视盒子
CPU speed:events per second:  1493.22General statistics:total time:                          10.0026stotal number of events:              14943Latency (ms):min:                                    2.66avg:                                    2.68max:                                   18.5495th percentile:                        2.71sum:                                39998.98Threads fairness:events (avg/stddev):           3735.7500/8.20execution time (avg/stddev):   9.9997/0.0
  • 云服务器
CPU speed:events per second:  1339.86General statistics:total time:                          10.0027stotal number of events:              13405Latency (ms):min:                                    2.89avg:                                    2.98max:                                    4.7195th percentile:                        3.13sum:                                39989.84Threads fairness:events (avg/stddev):           3351.2500/13.35execution 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.5645stotal number of events:              10240Latency (ms):min:                                    0.05avg:                                    0.05max:                                    0.1995th percentile:                        0.08sum:                                  561.64Threads fairness:events (avg/stddev):           10240.0000/0.00execution time (avg/stddev):   0.5616/0.00
  • 电视盒子
10240.00 MiB transferred (4792.52 MiB/sec)General statistics:total time:                          2.1318stotal number of events:              10240Latency (ms):min:                                    0.21avg:                                    0.21max:                                    0.3795th percentile:                        0.21sum:                                 2126.68Threads fairness:events (avg/stddev):           10240.0000/0.00execution time (avg/stddev):   2.1267/0.00
  • 云服务器
10240.00 MiB transferred (14686.15 MiB/sec)General statistics:total time:                          0.6950stotal number of events:              10240Latency (ms):min:                                    0.06avg:                                    0.07max:                                    0.1795th percentile:                        0.08sum:                                  690.30Threads fairness:events (avg/stddev):           10240.0000/0.00execution 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.18writes/s:                     3590.12fsyncs/s:                     11488.40Throughput:read, MiB/s:                  84.14written, MiB/s:               56.10General statistics:total time:                          60.0076stotal number of events:              1227881Latency (ms):min:                                    0.00avg:                                    0.05max:                                   28.1195th percentile:                        0.08sum:                                59288.93Threads fairness:events (avg/stddev):           1227881.0000/0.00execution time (avg/stddev):   59.2889/0.00
  • 电视盒子
内置mmc硬盘太小,无法完成测试。
  • 云服务器
File operations:reads/s:                      35.77writes/s:                     23.85fsyncs/s:                     76.33Throughput:read, MiB/s:                  0.56written, MiB/s:               0.37General statistics:total time:                          60.3794stotal number of events:              8081Latency (ms):min:                                    0.00avg:                                    7.47max:                                11084.3995th percentile:                        0.17sum:                                60354.33Threads fairness:events (avg/stddev):           8081.0000/0.00execution 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:                            360430write:                           102980other:                           51490total:                           514900transactions:                        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.0187stotal number of events:              25745Latency (ms):min:                                    5.67avg:                                   18.64max:                                  104.1695th percentile:                       27.66sum:                               479997.75Threads fairness:events (avg/stddev):           3218.1250/14.90execution time (avg/stddev):   59.9997/0.01
  • 电视盒子
SQL statistics:queries performed:read:                            117348write:                           33528other:                           16764total:                           167640transactions:                        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.0391stotal number of events:              8382Latency (ms):min:                                   23.51avg:                                   57.28max:                                  219.0995th percentile:                       92.42sum:                               480099.51Threads fairness:events (avg/stddev):           1047.7500/5.21execution time (avg/stddev):   60.0124/0.01
  • 云服务器
SQL statistics:queries performed:read:                            6818write:                           1948other:                           974total:                           9740transactions:                        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.0263stotal number of events:              487Latency (ms):min:                                   89.65avg:                                  999.24max:                                 5688.3095th percentile:                     3841.98sum:                               486629.54Threads fairness:events (avg/stddev):           60.8750/1.69execution time (avg/stddev):   60.8287/0.07

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

电视盒子(armbian Linux)

image

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

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

相关文章

Python库pandas之一

Python库pandas之一 基本数据结构Series构造器属性属性应用函数函数应用 基本数据结构 Pandas提供了两种类型的类来处理数据: Series:保存任何类型数据的一维数组。例如整数、字符串、Python对象等。DataFrame:一种二维数据结构&#xff0c…

ip是可以从能够上网的设备提取吗

是的,IP地址可以从能够上网的设备提取。以下是如何从不同设备提取IP地址的具体方法: 在电脑上提取IP地址 Windows: 打开命令提示符(按下 Win R,输入 cmd,按回车)。 输入命令 ipconfig,按回车。…

GAMES101(17~18节,物理材质模型)

材质 BRDF 材质:决定了光线与物体不同的作用方式 BRDF定义了物体材质,包含漫反射和镜面部分 BSDF (scattering散射) BRDF(reflect反射) BTDF 光线打击到物体上会向四面八方散射 反射 光线打击到物体上反射出去…

IIS开启后https访问出错net::ERR_CERT_INVALID

安装ArcGIS server和portal等,按照说明上,先开启iis,在安装server、datastore、portal、webadapter等,遇到一些问题: 问题1 访问http正常,访问https出错: 解决方案 从这里找到解决方案&…

【Android 源码分析】Activity生命周期之onPause

忽然有一天,我想要做一件事:去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…

java多线程-1-测试一个多线程程序

多线程基本概念 进程:程序的基本执行实体 线程:操作系统能够进行运算调度的最小单位,包含在进程之中 多线程:在等待线程的时间,处理其他线程,提高计算机处理效率以减小资源的占用 并发:在同一时…

【QT】QWidget 重要属性

文章目录 enabledgeometrywindowTitlewindowIconqrc 机制windowOpacitycursorfontQFont toolTip 和 toolTipDurationfocusPolicyQt::FocusPolicy styleSheet enabled 作用:设置控件是否可使用. true 表⽰可用, false 表⽰禁用. 对应的API bool isEnabled(); // 获…

揭秘遗传之谜:自闭症的遗传因素分析

在星贝育园这片充满爱与希望的土地上,我们不仅见证了无数自闭症儿童在康复训练中的点滴进步,更深刻理解了自闭症这一复杂疾病的多样性和挑战性。自闭症,也称为孤独症,是一种影响社交互动、语言和非语言交流以及行为模式的神经发育…

C++ 语言特性06 - lambda表达式

一:概述 1. 语法 [ captures ] ( params ) specifiers exception -> ret { body }其中:captures 是捕获列表,用于捕获当前函数作用域的变量,分为按值捕获和按引用捕获。params 是可选参数列表,和普通函数一样。spe…

通信工程学习:什么是CSMA/CA载波监听多路访问/冲突避免

CSMA/CA:载波监听多路访问/冲突避免 CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance),即载波监听多路访问/冲突避免,是一种用于数据传输时避免各站点之间冲突的算法,尤其适用于无线局域网&…

python格式化输入输出

以下是使用 format()、f-string 和百分号 % 运算符进行 Python 数据格式化输入输出的示例代码。 1. 使用 format() 方法进行格式化 # 使用 format() 方法格式化数据并输出到文件 name "Alice" age 25 score 92.5# 格式化字符串 formatted_string "Name: {…

2022年6月 Frontier 获得性能第一的论文翻译

为百万兆级加速架构做高性能 Linpack 优化 摘要 我们详细叙述了在 rocHPL 中做的性能优化,rocHPL 是 AMD 对 HPL 基准的开源实现,主要是针对节点进行优化的架构,是为百万兆级系统而设计的,比如:Frontier suppercomput…

深蕾半导体Astra™ SL1620详细介绍,嵌入式物联网处理器

一,SL1620是什么 Astra™ SL系列是深蕾半导体推出的高度集成的嵌入式物联网处理器SoC(System on Chip)系列产品,专为多模式消费者、企业和工业物联网工作负载而设计。SL1620是Astra™ SL系列中的一款成本和功耗优化的安全嵌入式So…

Windows 11 安装配置 Git 教程

目录 Git Windows 11 环境安装配置 Git Git Git是一个开源的分布式版本控制系统,由Linus Torvalds创建,用于有效、高速地处理从小到大的项目版本管理。Git是目前世界上最流行的版本控制系统,广泛应用于软件开发中。 以下是Git的一些关键特…

【C#】CacheManager:高效的 .NET 缓存管理库

在现代应用开发中,缓存是提升性能和降低数据库负载的重要技术手段。无论是 Web 应用、桌面应用还是移动应用,缓存都能够帮助减少重复的数据查询和处理,从而提高系统的响应速度。然而,管理缓存并不简单,尤其是当你需要处…

使用RestTemplate调用EMQX API查询MQTT客户端列表信息

项目中集成mqtt客户端查询功能,使用到了EMQX api-v5,具体步骤: 一、准备工作 首先在EMQX dashboard中添加API 密钥 填写密钥名称,点击确定,会生成API Key和Secret Key,保存起来备用。 二、配置文件 在…

AWS Network Firewall - IGW方式配置只应许白名单域名出入站

参考链接 https://repost.aws/zh-Hans/knowledge-center/network-firewall-configure-domain-ruleshttps://aws.amazon.com/cn/blogs/networking-and-content-delivery/deployment-models-for-aws-network-firewall/ 1. 创建防火墙 选择防火墙的归属子网(选择公有…

基于Hive和Hadoop的共享单车分析系统

本项目是一个基于大数据技术的共享单车分析系统,旨在为用户提供全面的单车使用信息和深入的出行行为分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以 S…

【JavaEE】http/https 超级详解

🔥个人主页: 中草药 🔥专栏:【Java】登神长阶 史诗般的Java成神之路 🦊一.定义 HTTP(HyperText Transfer Protocol)即超文本传输协议,他是应用非常广泛的应用层协议,是…

【C#】StructLayout的使用

StructLayout 属性在 C# 中主要用于定义结构体或类在内存中的布局方式,这对于与非托管代码(例如通过 P/Invoke 调用的 Win32 API)进行交互时非常重要。StructLayout 属性位于 System.Runtime.InteropServices 命名空间下。使用此属性可以确保…