目录
一、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)是柔性算力,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景。https://www.huaweicloud.com/product/flexus-x.html
1.2 在mysql方面的优势
在MySQL方面,根据Flexus X实例官网给出的介绍啊,总结了一下Flexus云服务器X实例应该提供了以下优势:
-
高性能加速:Flexus X实例引入了创新的X-Turbo加速技术,该技术能够智能识别数据库应用场景,如MySQL,并针对其进行深度优化,最高可实现6倍于业界独享型实例产品的性能提升。这种加速技术能够显著提升MySQL数据库的响应速度和吞吐量,满足高并发、大数据量处理的需求。
-
灵活的资源配比:Flexus X实例打破了传统云服务器CPU与内存配比的限制,提供了多种灵活的配比选项,如1:3、2:5等,甚至可达3:1的CPU/内存比。这种灵活性使得用户能够根据自身业务需求和MySQL数据库的性能要求,精准配置资源,实现成本效益的最大化。
-
优化的操作系统:Flexus X实例支持基于openEuler构建的Cloud EulerOS操作系统,该操作系统为MySQL等数据库应用提供了云原生、高性能的执行环境。在CPU、内存、网络、存储、内核等多个领域以及MySQL应用本身进行针对性调优,以达到最优状态,从而提升MySQL数据库的整体性能。
-
便捷的管理和部署: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企业节,华为云还推出了超值特惠,把握此刻,助您企业腾飞,开启高速发展之路!