828华为云征文|使用sysbench对Flexus X实例对mysql进行性能测评

news2024/9/29 10:06:57

目录

一、Flexus X实例概述

1.1 Flexus X实例

1.2 在mysql方面的优势

二、在服务器上安装MySQL

2.1 在宝塔上安装docker

2.2 使用宝塔安装mysql

2.3 准备测试数据库和数据库表

三、安装sysbench并进行性能测试

3.1 使用yum命令sysbench

3.2 运行 sysbench 并进行性能测试

3.3 运行结果分析性能

SQL Statistics

General Statistics

Latency (延迟)

Threads Fairness

3.4 清理测试数据

3.5 总结


一、Flexus X实例概述

1.1 Flexus X实例

Flexus云服务器X实例是华为云推出的一款高性能、可扩展的虚拟服务器解决方案,专为满足企业和个人用户对高可靠性、灵活性和强大计算能力的需求而设计。该实例不仅具备卓越的硬件性能,还深度集成了对MySQL等数据库的优化支持,为用户提供了卓越的数据库应用体验。官网如下:

Flexus云服务器X实例-华为云Flexus云服务器X实例(Flexus X)是柔性算力,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景。icon-default.png?t=O83Ahttps://www.huaweicloud.com/product/flexus-x.html

1.2 在mysql方面的优势

在MySQL方面,根据Flexus X实例官网给出的介绍啊,总结了一下Flexus云服务器X实例应该提供了以下优势:

  1. 高性能加速:Flexus X实例引入了创新的X-Turbo加速技术,该技术能够智能识别数据库应用场景,如MySQL,并针对其进行深度优化,最高可实现6倍于业界独享型实例产品的性能提升。这种加速技术能够显著提升MySQL数据库的响应速度和吞吐量,满足高并发、大数据量处理的需求。

  2. 灵活的资源配比:Flexus X实例打破了传统云服务器CPU与内存配比的限制,提供了多种灵活的配比选项,如1:3、2:5等,甚至可达3:1的CPU/内存比。这种灵活性使得用户能够根据自身业务需求和MySQL数据库的性能要求,精准配置资源,实现成本效益的最大化。

  3. 优化的操作系统:Flexus X实例支持基于openEuler构建的Cloud EulerOS操作系统,该操作系统为MySQL等数据库应用提供了云原生、高性能的执行环境。在CPU、内存、网络、存储、内核等多个领域以及MySQL应用本身进行针对性调优,以达到最优状态,从而提升MySQL数据库的整体性能。

  4. 便捷的管理和部署:Flexus云服务器X实例提供了丰富的管理工具和API接口,用户可以通过华为云控制台或API快速部署和管理MySQL数据库。同时,华为云还提供了丰富的文档和社区支持,帮助用户解决在使用过程中遇到的问题。

二、在服务器上安装MySQL

2.1 在宝塔上安装docker

之前,我们不是安装了宝塔面板吗,然后我们登录宝塔面板,然后在宝塔上安装docker试试看:

登录之后,点击右侧的docker以及立即安装。在弹出来的页面我们选择默认安装方式就行了,然后点击确定。

不过后面提示鸿蒙镜像不支持默认安装,要换为二进制安装,如下图。

然后我们返回图二,选择二进制文件安装即可,如下图,等待安装完成即可:

然后出现如下图,就是登录成功了,好喽,然后我们返回Flexus云服务器X实例控制台,这次我们去cloudshell使用docker hub安装mysql。

2.2 使用宝塔安装mysql

我们还是去宝塔面板直接搜索安装吧,再右侧菜单栏点击docker,然后在上面点击线上镜像,然后就可以看得到我们的mysql,然后他这里提示也可以创建容器,不过我们还是先拉取到本地服务器上,然后再创建容器吧,然后点击拉取。

然后出现以下页面说明正在拉取,我们先耐心等一下:

然后拉取成功,我们就可以点击本地镜像,然后就可以看得到有一个mysql镜像,如下图:

然后我们点击最右侧的创建容器,因为他这个手动创建,没有配置mysql密码这个选择,因此我们选择命令创建,然后输入以下命令,这里我们创建mysql的密码就是666666了,

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=666666 -d mysql:latest

然后点击执行命令,好喽,这下我们就基于docker创建了我们自己的mysql服务了

然后点击上面的容器查看是否真的创建了容器并运行:

可以看得到我们的容器确实已经在运行了,然后我们使用navicat进行远程连接一下,输入我们的主机和连接密码,点击测试连接,是提示我们连接成功的,然后我们点击确定,再点击下方的确定

2.3 准备测试数据库和数据库表

接下来,我们需要准备一个测试数据库和测试表,可以参考下面命令

CREATE DATABASE sysbenchdb_test;

USE sysbenchdb_test;

CREATE TABLE sbtest (

    id INT AUTO_INCREMENT PRIMARY KEY,

    k INT,

    c VARCHAR(255),

    pad CHAR(60)

);

上面这段命令的意思是首先创建了一个名为 sysbenchdb_test 的数据库,然后切换到这个数据库,并在其中创建了一个名为 sbtest 的表。这个表有四个字段:id(自增主键),k(整数类型),c(可变长度的字符串,最大长度为255),以及pad(固定长度的字符串,长度为60)。这个表一般用于性能测试和基准测试,用于模拟和评估数据库在处理大量数据时的性能表现。

三、安装sysbench并进行性能测试

3.1 使用yum命令sysbench

接下来,我们这下是要去cloudshell使用yum安装sysbench了。好,然后我们进入到Flexus云服务器X实例控制台,点击右侧的远程登录,然后从弹出来的窗口再选择cloudshell登录:

然后我们输入服务器密码,点击连接:

登录成功之后使用下面命令安装sysbench

yum install sysbench

OK,出现下面的页面就说明以及安装成功了,接下来我们进行测试 

3.2 运行 sysbench 并进行性能测试

接下来我们输入以下命令:

sysbench oltp_read_write --db-driver=mysql --mysql-host=主机ip --mysql-user=username --mysql-password=password --mysql-db=sysbenchdb_test --tables=1 --table-size=1000000 prepare

这个命令的意思就是利用sysbench 工具远程连接你的mysql主机服务器,然后往sysbenchdb_test 数据库里面,新增一个表并且插入一百万条数据,用于后续的性能测试当作准备数据。我们可以模拟真实负载条件,对数据库性能进行评估,以确保它在处理大量读写操作时的表现。这有助于验证数据库的稳定性和性能,以满足实际应用程序的需求。 

输入如下说明我们的测试数据以及准备好了。接下来我们在执行一条测试读写性能的命令:

sysbench oltp_read_write --db-driver=mysql --mysql-host=主机ip --mysql-user=username --mysql-password=password --mysql-db=sysbenchdb_test --tables=1 --table-size=1000000 --threads=10 --time=30 run

下面是对于各个参数的解析: 

  • sysbench oltp_read_write: 这是指定使用 sysbench 的 oltp_read_write 测试场景。这个场景模拟了常见的 OLTP 负载,包括读取和写入操作。

  • --db-driver=mysql: 指定数据库驱动为 MySQL。这意味着 sysbench 将使用 MySQL 客户端库来连接和执行测试。

  • --mysql-host=主机ip: 这里 主机ip 需要替换为你的 MySQL 数据库服务器的实际 IP 地址或主机名。这是数据库服务器所在的位置。

  • --mysql-user=username: 指定用于连接 MySQL 数据库的用户名。你需要替换 username 为实际的数据库用户名。

  • --mysql-password=password: 指定用于连接 MySQL 数据库的密码。出于安全考虑,不推荐在命令行中直接显示密码,尽管这里为了说明而这样做了。

  • --mysql-db=sysbenchdb_test: 指定要测试的数据库名称。这里假设你已经有了一个名为 sysbenchdb_test 的数据库,如果没有,你需要先创建它。

  • --tables=1: 指定要创建和测试的表的数量。在这个例子中,我们仅测试一个表。

  • --table-size=1000000: 指定每个表中的数据行数。这里设置为 1000000 行,即每个表包含一百万行数据。

  • --threads=10: 指定并发执行的线程数。在这个例子中,我们将使用 10 个线程来模拟并发访问。

  • --time=30: 指定测试的总时间(以秒为单位)。在这个例子中,测试将运行 30 秒。

  • run: 告诉 sysbench 执行上述配置的测试。

执行这个命令后,sysbench 将连接到指定的 MySQL 数据库,创建一个包含一百万行数据的表,然后使用 10 个线程运行 30 秒的 OLTP 读写测试。测试完成后,它将输出测试结果,包括每秒的查询数(QPS)、事务数(TPS)以及其他性能指标,有了这些指标,我们就可以大概评估数据库的性能是怎么样的了。

3.3 运行结果分析性能

OK,让我们等待30秒之后得到如下的输出: 

原文版

中文版:

解释如下:

SQL Statistics

  • 查询执行
    • 读取:577,906次 - 进行了大量的读取操作,表明系统可能主要用于数据检索。
    • 写入:165,116次 - 写入操作相对较少,但仍然是系统性能的一个重要组成部分。
    • 其他:82,558次 - 包括了一些非读写操作,如存储过程调用、数据定义语言(DDL)操作等。
    • 总计:825,580次 - 总的SQL操作次数,反映了系统的整体活动水平。
  • 事务和查询速率
    • 事务:41,279个,平均每秒1,375.59个 - 事务处理速度较高,表明系统能够处理大量的并发事务。
    • 查询:825,580个,平均每秒27,511.81个 - 查询处理速度也非常高,显示出系统对查询的响应能力很强。
  • 错误和重连
    • 忽略的错误:0个 - 没有忽略任何错误,表明测试过程中没有遇到导致操作失败的问题。
    • 重连:0次 - 没有发生重连,说明数据库连接稳定。

General Statistics

  • 总时间:30.0068秒 - 测试运行的总时间,表明测试是在相对较短的时间内完成的。
  • 事件总数:41,279个 - 与事务数相同,因为每个事务可能被视为一个事件。

Latency (延迟)

  • 最小延迟:3.45毫秒 - 最低的事务或查询处理时间,表明系统在某些情况下能够非常快速地响应。
  • 平均延迟:7.27毫秒 - 平均每个事务或查询的处理时间,这是一个相当低的值,表明系统整体性能良好。
  • 最大延迟:19.25毫秒 - 最长的事务或查询处理时间,虽然比平均值高,但仍然在可接受的范围内。
  • 95th percentile:9.73毫秒 - 95%的事务或查询在9.73毫秒内完成,这是一个重要的性能指标,因为它提供了关于系统响应时间的可靠估计。
  • 总延迟:299,975.09毫秒 - 所有事务或查询的总处理时间。

Threads Fairness

  • 事件分配:平均每个线程处理了4,127.9个事件,标准差为30.57。这表明线程间的事件处理非常均衡,标准差较小,说明没有线程过载或空闲。
  • 执行时间:平均每个线程的执行时间为29.9975秒,标准差几乎为0。这进一步证实了线程间的负载分配非常均匀,且执行时间非常接近。

3.4 清理测试数据

测试完之后别忘记清理数据了,不然放这么多数据在服务器是很影响性能的。命令如下:

sysbench --test=oltp --mysql-host=localhost --mysql-user=root --mysql-db=sysbenchdb_test \ --oltp-table-size=1000000 --oltp-tables-count=10 --mysql-password=yourpassword cleanup

清理测试数据也可以保证环境数据的一致性以及对于下次测试的时候不会产生别的影响。 

3.5 总结

通过以上数据我们大概可以知道数据库系统在处理大量并发事务和查询时表现出色,具有低延迟和高吞吐量的特点。线程间的负载分配非常均衡,没有出现明显的瓶颈或性能下降。说明了这个Flexus云服务器X实例确实非常出色,算力以及性能在X-Turbo加速下也是遥遥领先。就一个词语形容:遥遥领先!

综上所述,Flexus云服务器X实例凭借其高性能加速、灵活的资源配比、优化的操作系统以及便捷的管理和部署等优势,都可以成为企业和个人用户部署MySQL数据库的理想选择。无论是处理大规模数据存储和查询,还是应对高并发、大数据量处理的场景,Flexus X实例都能够提供稳定、高效的支持。在828企业节,我强烈推荐Flexus云服务器X实例。作为专为中小企业和开发者打造的柔性算力云服务器,Flexus X实例凭借智能预画像迁移降本、动态性能优化及柔性算力技术,极大降低了上云成本。其灵活的资源配置和强大的扩展能力,能满足电商直播、企业建站、开发测试等多种场景需求。此外,Flexus X实例的卓越性能和稳定服务,为企业数字化转型提供了可靠保障。在828企业节,华为云还推出了超值特惠,把握此刻,助您企业腾飞,开启高速发展之路!

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

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

相关文章

Jumpserver堡垒机应用部署案例

本案例主要讲述了如何安装Jumpserver堡垒机应用,以及使用Jumpserver堡垒机对接OpenStack平台进行管理 一、OpenStack平台对接堡垒机 案例准备 1.规划节点 IP 主机名 节点 192.168.20.21 controller OpenStack Controller节点 192.168.20.22 jumpserver O…

0基础跟德姆(dom)一起学AI 机器学习02-KNN算法

【理解】KNN算法思想 K-近邻算法(K Nearest Neighbor,简称KNN)。比如:根据你的“邻居”来推断出你的类别 KNN算法思想:如果一个样本在特征空间中的 k 个最相似的样本中的大多数属于某一个类别,则该样本也属…

从事人工智能学习Python还是学习C++?

人工智能(Artificial Intelligence,简称AI)是当今科技领域最热门的研究方向之一。AI 涉及多个学科和技术,特别是机器学习、神经网络、深度学习等技术的应用。在AI的开发过程中,编程语言的选择对于开发效率和项目实现至…

戴尔电脑怎么开启vt虚拟化_戴尔电脑新旧机型开启vt虚拟化教程

最近使用戴尔电脑的小伙伴们问我,戴尔电脑怎么开启vt虚拟。大多数可以在Bios中开启vt虚拟化技术,当CPU支持VT-x虚拟化技术,有些电脑会自动开启VT-x虚拟化技术功能。而大部分的电脑则需要在Bios Setup界面中,手动进行设置&#xff…

C++ | Leetcode C++题解之第443题压缩字符串

题目&#xff1a; 题解&#xff1a; class Solution { public:int compress(vector<char>& chars) {int n chars.size();int write 0, left 0;for (int read 0; read < n; read) {if (read n - 1 || chars[read] ! chars[read 1]) {chars[write] chars[re…

QT九月28日

1.实现登录界面 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget>class Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget(); }; #endif // WIDGET_H源文件 #include "widget.h" #include <QIcon> #in…

服务器分类极简理解

塔式服务器 塔式服务器外形类似于电脑主机机箱&#xff0c;它的特点有易于维护、灵活性高、噪音低、无需专门的机架 塔式服务器适用于中小型企业或办公室等环境 刀片服务器 刀片服务器是在标准高度的机架式机箱内可插装多个卡式的服务器单元&#xff0c;它的特点是高可用性、…

openEuler 下载rpm 包

有2种方式 1、使用dnf 下载软件包 2、或者开启缓存&#xff0c;安装自动获取rpm其他事项 3、dnf 安装数据库的机器&#xff0c;应屏蔽数据软件的更新 4、下载的rpm 莫名奇妙的不能安装1、dnf download 下载软件包 # resolve 解决依赖 ,destdir 指定下载路径 dnf download -…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于变分模态分解和组合深度神经网络的综合能源系统多元负荷预测》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

「漏洞复现」九块九付费进群系统 wxselect SQL注入漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删…

数据结构与算法笔记7:最小生成树-Prim和Kruskal算法

常用的最小生成树的算法主要有两种&#xff0c;一种是Prim算法&#xff0c;一种是Kruskal算法。题目链接&#xff1a;KamaCoder 53. 寻宝&#xff08;第七期模拟笔试&#xff09; 这里假设有V个节点&#xff0c;因为我们的节点的标号是1~V&#xff0c;这样我们直接使用标号作…

JSON的C实现(上)

JSON的C实现&#xff08;上&#xff09; JSON的C实现&#xff08;上&#xff09;前言JSON简介JSON的C实现思路小结 JSON的C实现&#xff08;上&#xff09; 前言 JSON是众多项目中较为常见的数据交换格式&#xff0c;为不同项目、系统间的信息交换提供了一个规范化标准。JSON…

1.7 软件缺陷管理

欢迎大家订阅【软件测试】 专栏&#xff0c;开启你的软件测试学习之旅&#xff01; 文章目录 前言1 缺陷介绍2 缺陷描述及提交3 缺陷跟踪流程4 案例分析 前言 在软件开发和测试过程中&#xff0c;缺陷&#xff08;通常称为“bug”&#xff09;是不可避免的。了解和有效管理这些…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第十二集:制作完整地图和地图细节设置以及制作相机系统的跟随玩家和视角锁定功能

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、制作完整的地图和地图细节设置 1.制作地图前的设置2.制作地图前期该做的事3.制作地图之堆叠素材4.制作地图后期该做的事5.制作地图之修复意想不到的Bug二、…

ping基本使用详解

在网络中ping是一个十分强大的TCP/IP工具。它的作用主要为&#xff1a; 用来检测网络的连通情况和分析网络速度根据域名得到服务器 IP根据 ping 返回的 TTL 值来判断对方所使用的操作系统及数据包经过路由器数量。我们通常会用它来直接 ping ip 地址&#xff0c;来测试网络的连…

Cisco Secure Firewall Management Center Virtual 7.4.2 - 思科 Firepower 管理中心软件

Cisco Secure Firewall Management Center Virtual 7.4.2 - 思科 Firepower 管理中心软件 Firepower Management Center Software 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-fmc-7/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 实现管理任务…

第十三届蓝桥杯真题Java 斐波那契与7(持续更新)

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;蓝桥杯关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 问题描述 斐波那契数列的递推公式为: FnFn−1Fn−2Fn​Fn−1​Fn−2​, 其中 …

喜欢把家里打扫得很干净的人,大多活成了这样,不是迷信!

生活中&#xff0c;我们常常会遇到一些喜欢把家里打扫得干干净净的人。 对于这些人来说&#xff0c;整洁的环境不仅是一种生活习惯&#xff0c;更是一种对生活的态度。 其实&#xff0c;这种生活习惯背后&#xff0c;往往隐藏着他们的命运和未来发展。 以下是喜欢把家里打扫…

c++入门 类和对象(中)

文章目录 1. 类的默认成员函数2. 构造函数3. 析构函数4. 拷贝构造函数5. 赋值运算符重载5.1 运算符重载5.2 赋值运算符重载5.3 日期类实现 6. 取地址运算符重载6.1 const成员函数6.2 取地址运算符重载 总结 1. 类的默认成员函数 默认成员函数就是用户没有显式实现&#xff0c;…

AutoGen框架进行多智能体协作—AI Agentic Design Patterns with AutoGen(一)

1. 多代理对话&#xff1a;单口喜剧 在AutoGen中&#xff0c;Agent是一个可以代表人类意图执行操作的实体&#xff0c;发送消息&#xff0c;接收消息&#xff0c;执行操作&#xff0c;生成回复&#xff0c;并与其他代理交互。AutoGen具有一个名为Conversible Agent的内置代理类…