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

目录

一、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.1Flexus X实例

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

Flexus云服务器X实例-华为云Flexus云服务器X实例(Flexus X)是柔性算力,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景。[这里是图片001]https://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: 这是指定使用sysbencholtp_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企业节,华为云还推出了超值特惠,把握此刻,助您企业腾飞,开启高速发展之路!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

影刀进阶指令 | Kimi (对标ChatGPT)

文章目录 影刀进阶指令 | Kimi (对标ChatGPT)一. 需求二. 流程三. 实现3.1 流程概览3.2 流程步骤讲解1\. 确定问题2\. 填写问题并发送3\. 检测答案是否出完 四. 运维 影刀进阶指令 | Kimi (对标ChatGPT) 简单讲讲RPA调用kimi实现…

【教程】通过Docker运行AnythingLLM

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 官方教程:Local Docker Installation ~ AnythingLLM 1、先创建一个目录用于保存anythingllm的持久化文件: sudo mkdir /app su…

游戏引擎学习第65天

回顾我们在模拟区域更改方面的进展 目前我们正在进行游戏的架构调整,目标是建立一个引擎架构。我们正在实施的一个关键变化是引入模拟区域的概念,这样我们可以创建非常大的游戏世界,而这些世界的跨度不必受限于单个浮点变量。 通过这种方式…

【从零开始入门unity游戏开发之——C#篇35】C#自定义类实现Sort自定义排序

文章目录 一、List<T>自带的排序方法1、List<T>调用Sort()排序2、 能够使用 Sort() 方法进行排序的本质 二、自定义类的排序1、通过实现泛型IComparable<T> 接口&#xff08;1&#xff09;示例&#xff08;2&#xff09;直接调用 int 类型的 CompareTo 方法进…

YOLO系列正传(五)YOLOv4论文精解(上):从CSPNet、SPP、PANet到CSPDarknet-53

系列文章 YOLO系列基础 YOLO系列基础合集——小白也看得懂的论文精解-CSDN博客 YOLO系列正传 YOLO系列正传&#xff08;一&#xff09;类别损失与MSE损失函数、交叉熵损失函数-CSDN博客 YOLO系列正传&#xff08;二&#xff09;YOLOv3论文精解(上)——从FPN到darknet-53-C…

Redis 实战篇 ——《黑马点评》(上)

《引言》 在进行了前面关于 Redis 基础篇及其客户端的学习之后&#xff0c;开始着手进行实战篇的学习。因内容很多&#xff0c;所以将会分为【 上 中 下 】三篇记录学习的内容与在学习的过程中解决问题的方法。Redis 实战篇的内容我写的很详细&#xff0c;为了能写的更好也付出…

DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(2)

DevOps实战&#xff1a;用Kubernetes和Argo打造自动化CI/CD流程&#xff08;2&#xff09; 背景 Tips 翻遍国内外的文档&#xff0c;关于 Argo 作为 CI/CD 当前所有开源的文档&#xff0c;博客&#xff0c;argo官方文档。得出的结论是&#xff1a; argo官方给出的例子都相对…

探索Flink动态CEP:杭州银行的实战案例

摘要&#xff1a;本文撰写自杭州银行大数据工程师唐占峰、欧阳武林老师。将介绍 Flink 动态 CEP的定义与核心概念、应用场景、并深入探讨其技术实现并介绍使用方式。主要分为以下几个内容&#xff1a; Flink动态CEP简介 Flink动态CEP的应用场景 Flink动态CEP的技术实现 Flin…

STM32F103RCT6学习之三:串口

1.串口基础 2.串口发送 1&#xff09;基本配置 注意&#xff1a;实现串口通信功能需在keil中设置打开Use Micro LIB&#xff0c;才能通过串口助手观察到串口信息 2)编辑代码 int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration-------------…

Python中构建终端应用界面利器——Blessed模块

在现代开发中&#xff0c;命令行应用已经不再仅仅是一个简单的文本输入输出工具。随着需求的复杂化和用户体验的重视&#xff0c;终端界面也逐渐成为一个不可忽视的设计环节。 如果你曾经尝试过开发终端UI&#xff0c;可能对传统的 print() 或者 input() 函数感到不满足&#…

OpenHarmony-5.PM 子系统(2)

电池服务组件OpenHarmony-4.1-Release 1.电池服务组件 Battery Manager 提供了电池信息查询的接口&#xff0c;同时开发者也可以通过公共事件监听电池状态和充放电状态的变化。电池服务组件提供如下功能&#xff1a; 电池信息查询。充放电状态查询。关机充电。 电池服务组件架…

Java 网络原理 ①-IO多路复用 || 自定义协议 || XML || JSON

这里是Themberfue 在学习完简单的网络编程后&#xff0c;我们将更加深入网络的学习——HTTP协议、TCP协议、UDP协议、IP协议........... IO多路复用 ✨在上一节基于 TCP 协议 编写应用层代码时&#xff0c;我们通过一个线程处理连接的申请&#xff0c;随后通过多线程或者线程…

基于规则的系统架构:理论与实践

在当今信息化快速发展的时代&#xff0c;企业面临着日益复杂和多变的市场环境&#xff0c;传统的静态系统架构已难以满足快速响应业务变化的需求。基于规则的系统架构&#xff08;Rule-Based System Architecture, RBSA&#xff09;作为一种灵活、可扩展的架构模式&#xff0c;…

记一个itertools排列组合和列表随机排序的例子

朋友不知道哪里弄来了一长串单词列表&#xff0c;一定要搞个单词不重复的组合。那么这个时候我们就可以想到读书时所学的排列组合知识了&#xff0c;而这个在Python中可以怎么实现呢&#xff1f;我记录如下&#xff1a; 使用itertools模块实现排列组合 在 Python 中&#xff…

从0入门自主空中机器人-4-【PX4与Gazebo入门】

前言: 从上一篇的文章 从0入门自主空中机器人-3-【环境与常用软件安装】 | MGodmonkeyの世界 中我们的机载电脑已经安装了系统和常用的软件&#xff0c;这一篇文章中我们入门一下无人机常用的开源飞控PX4&#xff0c;以及ROS中无人机的仿真 1. PX4的安装 1.1 PX4固件代码的下载…

搭建vue项目

一、环境准备 1、安装node node官网&#xff1a;https://nodejs.org/zh-cn 1.1、打开官网&#xff0c;选择“下载”。 1.2、选择版本号&#xff0c;选择系统&#xff0c;根据需要自行选择&#xff0c;上面是命令安装方式&#xff0c;下载是下载安装包。 1.3、检查node安装…

深度学习笔记(5)——目标检测和图像分割

目标检测与图像分割 语义分割:如果没有语义信息,很难正确分类每个像素 解决方案:感知像素周围的语义,帮助正确分类像素 滑窗计算:计算非常低效,图像块的重叠部分会被重复计算很多次 解决方案:转向全卷积 全卷积问题:分类模型会大幅降低特征的分辨率,难以满足分割所需的高分辨…

go语言的成神之路-筑基篇-gin常用功能

第一节-gin参数绑定 目录 第一节-?gin参数绑定 ShouldBind简要概述 功能&#xff1a; 使用场景&#xff1a; 可能的错误&#xff1a; 实例代码 效果展示 第二节-gin文件上传 选择要上传的文件 选择要上传的文件。 效果展示? 代码部分 第三节-gin请求重定向 第…

【Leecode】Leecode刷题之路第93天之复原IP地址

题目出处 93-复原IP地址-题目描述 题目描述 个人解法 思路&#xff1a; todo代码示例&#xff1a;&#xff08;Java&#xff09; todo复杂度分析 todo官方解法 93-复原IP地址-官方解法 方法1&#xff1a;回溯 思路&#xff1a; 代码示例&#xff1a;&#xff08;Java&…

【新方法】通过清华镜像源加速 PyTorch GPU 2.5安装及 CUDA 版本选择指南

下面详细介绍所提到的两条命令&#xff0c;它们的作用及如何在你的 Python 环境中加速 PyTorch 等库的安装。 1. 设置清华镜像源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple这条命令的作用是将 pip &#xff08;Python 的包管理工具&#xf…