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.rhkb.cn/news/436265.html

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

相关文章

曲线图异常波形检测系统源码分享

曲线图异常波形检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…

华为OD机试 - 最长元音子串的长度(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

Redis入门第三步:Redis事务处理

欢迎继续跟随《Redis新手指南:从入门到精通》专栏的步伐!在本文中,我们将探讨Redis的事务处理机制。了解如何使用事务来保证一系列操作的原子性和一致性,这对于构建可靠的应用程序至关重要 1 什么是Redis事务🍀 ​ R…

解锁数据宝藏:AI驱动搜索工具,让非结构化数据“说话

哈哈,说起这个 AI 搜索演示啊,那可真是个有意思的话题!非结构化数据,这家伙虽然难搞,但价值却是杠杠的。今天呢,咱就好好聊聊怎么借助 Fivetran 和 Milvus,快速搭建一个 AI 驱动的搜索工具,让企业能从那些乱七八糟的数据里淘到金子! 一、非结构化数据的挑战与机遇 首…

堆【数据结构C语言版】【 详解】

目录-笔记整理 一、思考二、堆概念与性质三、堆的构建、删除、添加1. 构建2. 删除3. 添加 四、复杂度分析4.1 时间复杂度4.2 空间复杂度 五、总结 一、思考 设计一种数据结构,来存放整数,要求三个接口: 1)获取序列中的最值&#…

Thinkphp/Laravel旅游景区预约系统的设计与实现

目录 技术栈和环境说明具体实现截图设计思路关键技术课题的重点和难点:框架介绍数据访问方式PHP核心代码部分展示代码目录结构解析系统测试详细视频演示源码获取 技术栈和环境说明 采用PHP语言开发,开发环境为phpstudy 开发工具notepad并使用MYSQL数据库…

景联文科技入选《2024中国AI大模型产业图谱2.0版》数据集代表厂商

近日,大数据产业领域头部媒体数据猿携手上海大数据联盟联合发布了备受瞩目的《2024中国AI大模型产业图谱2.0版》。以大数据与AI为代表的智能技术为主要视角,聚焦全产业链,为业内提供更为专业直观的行业指导。 景联文科技凭借高质量数据集&…

基于大数据的学生体质健康信息系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

Vue Mini基于 Vue 3 的小程序框架

新的小程序框架 https://vuemini.org/ Vue Mini 是一个基于 Vue 3 的小程序框架,它允许开发者利用 Vue 3 的强大功能来构建微信小程序。Vue Mini 的核心优势在于它的响应式系统和组合式 API,这些特性让开发者能够以一种更声明式、更高效的方式来编写和…

江科大笔记——新建工程

STM32的开发方式 目前STM32的开发方式主要有基于寄存器的方式、基于标准库的方式(库函数的方式)、基于HAL库的方式: 基于库函数的方式是使用ST官方提供的封装好的函数,通过调用这些函数来间接地配置寄存器。基于HAL库的方式可以…

【机器学习(七)】分类和回归任务-K-近邻 (KNN)算法-Sentosa_DSML社区版

文章目录 一、算法概念二、算法原理(一)K值选择(二)距离度量1、欧式距离2、曼哈顿距离3、闵可夫斯基距离 (三)决策规则1、分类决策规则2、回归决策规则 三、算法优缺点优点缺点 四、KNN分类任务实现对比&am…

【CKA】二、节点管理-设置节点不可用

2、节点管理-设置节点不可用 1. 考题内容: 2. 答题思路: 先设置节点不可用,然后驱逐节点上的pod 这道题就两条命令,直接背熟就行。 也可以查看帮助 kubectl cordon -h kubectl drain -h 参数详情: –delete-empty…

【COSMO-SkyMed系列的4颗卫星主要用途】

COSMO-SkyMed系列的4颗卫星主要用于提供一个多用途的对地观测平台,服务于民间、公共机构、军事和商业领域。以下是这4颗卫星的主要用途: 民防与环境风险管理: 卫星的高分辨率雷达图像可用于监测自然灾害,如地震、洪水、滑坡等&am…

【计算机网络】网络层详解

文章目录 一、引言二、IP 基础知识1、IP 地址2、路由3、IP报文4、IP报文的分片与重组 三、IP 属于面向无连接型四、IP协议相关技术1、DNS2、ICMP3、NAT技术4、DHCP 一、引言 TCP/IP的心脏是网络层。这一层主要由 IP 和 ICMP 两个协议组成。网络层的主要作用是“实现终端节点之…

Redis进阶篇 - 缓存穿透、缓存击穿、缓存雪崩问题及其解决方案

文章目录 1 文章概述2 缓存穿透2.1 什么是缓存穿透?2.2 缓存穿透的解决方法2.2.1 做好参数校验2.2.2 缓存无效Key2.2.3 使用布隆过滤器2.2.4 接口限流 3 缓存击穿3.1 什么是缓存击穿?3.2 缓存击穿的解决方法3.2.1 调整热点数据过期时间3.2.2 热点数据预热…

Postgresql怎么查询数据库中所有的表,odoo17数据库最依赖表整理

今天遇到了一个需求,需要梳理odoo中数据库表的分类,所以想要知道怎么查询当前数据库中所有的表,特此记录. 一个简单的SQL语句: select * from pg_tables;得到的结果如下: 显然这个有点杂乱,我们换一个SQL语句: select tablename from pg_tables where schemanamepublic不过…

软件测试学习笔记丨Mock的价值与实战

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32331 一、Mock的价值与意义 1.1 简介 测试过程中,对于一些不容易构造或获取的对象,用一个虚拟的对象来替代它,达到相同的效果,这个虚拟的对象…

启动服务并登录MySQL9数据库

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) Windows平台下安装与配置MyS…

Activiti 工作流大致了解

一、什么是 Activiti 简而言之&#xff0c;就是系统的流程图&#xff0c;如&#xff1a;请假审批流程、账单审批流程等。 二、mysql与pom配置 mysql要使用jdbc:mysql://localhost:3306/activiti?autoReconnecttrue pom文件要添加关键依赖 <!--activiti核心依赖--> &…

makefile和CMakeLists/C++包管理器

make 大家可能会很奇怪&#xff0c;都什么年代了&#xff0c;还学makefile&#xff0c;cmake都有些过时了&#xff0c;为什么还要再学这个呢&#xff1f; 我是这么看待这个问题的&#xff0c;cmake跨平台性还是很有有优势的&#xff0c;有着多年积累的底蕴&#xff0c;借助大模…