当前位置: 首页 > news >正文

华为云云耀云服务器L实例评测|使用sysbench对云耀云服务器mysql的性能测试

目录

引言

1 在centos上安装mysql

1.1 在云服务器上安装 Docker

1.2 在 Docker 中运行 MySQL 容器

2 安装sysbench并进行性能测试

2.1 安装和配置 sysbench

2.2 运行 sysbench 性能测试

3  分析测试结果

3.1 运行结果

3.2 对运行结果进行翻译

3.3 性能分析

4  清理测试

结论


引言

华为云服务器提供超高性价比的云计算资源,让你以超低门槛快速构建和扩展你的应用。拥有多种实例规格,从性能到成本的平衡得以轻松实现。

本文将使用一款高性价比的 22GB 内存、3MB 缓存的华为云服务器上的 CentOS 操作系统,来展示如何使用 sysbench 工具对 MySQL 数据库的性能进行测试。这样,你可以充分利用这一强大的计算平台,以确保你的应用在高性能要求下仍能如期运行。

1 centos上安装mysql

1.1 在云服务器上安装 Docker

首先,确保你的华为云云耀云服务器L实例上已安装 Docker。你可以按照 Docker 官方文档或云服务提供商的指南来完成 Docker 的安装。

1.2  Docker 中运行 MySQL 容器

首先查看镜像

docker search mysql5.7

下载镜像

docker pull docker.io/bingozhou/mysql5.7

耐心等待几分钟,就会出现下载成功的提示。

Using default tag: latestTrying to pull repository docker.io/bingozhou/mysql5.7 ...latest: Pulling from docker.io/bingozhou/mysql5.79f0706ba7422: Pull complete2290e155d2d0: Pull complete547981b8269f: Pull complete2c9d42ed2f48: Pull complete55e3122f1297: Pull completeabc10bd84060: Pull completec0a5ce64f2b0: Pull completec4595eab8e90: Pull complete098988cead35: Pull complete300ca5fa5eea: Pull complete43fdc4e3e690: Pull completedcc4404efef3: Pull completea2771f3f3276: Pull completeDigest: sha256:bc3bcd6b0edd018c997085d3082f99fff48e248a51d4459fd005f3c416798a7cStatus: Downloaded newer image for docker.io/bingozhou/mysql5.7:latest

使用以下命令从 Docker Hub 下载 MySQL 镜像并在容器中运行

 docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d docker.io/bingozhou/mysql5.7

这会启动一个 MySQL 容器,使用指定的 root 密码。我这里直接设置了一个简单的密码123456,如果想要设置其他密码,替换123456即可。

1.3连接到 MySQL 容器

首先需要在华为云服务器的安全组设置中,对入站规则进行配置,放开3306端口的访问。

找一台上网的笔记本,使用navicat连接mysql数据库,输入服务器ip,以及之前设置的 root 密码以连接到 MySQL 容器。

1.4 准备测试数据库

MySQL 容器内部,创建一个用于性能测试的数据库和表。以下是一个示例:

CREATE DATABASE sysbenchdb;

USE sysbenchdb;

CREATE TABLE sbtest (

    id INT AUTO_INCREMENT PRIMARY KEY,

    k INT,

    c CHAR(120),

    pad CHAR(60)

);

这组SQL语句的作用是在数据库中创建名为 "sysbenchdb" 的新数据库,然后切换到这个新创建的数据库。接下来,在 "sysbenchdb" 数据库内创建一个名为 "sbtest" 的表,该表包括一个自增的整数主键 "id",一个整数字段 "k",一个长度为 120 字符的字符型字段 "c",以及一个长度为 60 字符的字符型字段 "pad"。这个表通常用于性能测试和基准测试,用于模拟和评估数据库在处理大量数据时的性能表现。

2 安装sysbench并进行性能测试

2.1 安装和配置 sysbench

在云服务器上安装 sysbench 工具。使用以下命令:

sudo yum install sysbench

出现

说明sysbench安装成功。

2.2 运行 sysbench 性能测试

在云服务器上运行 sysbench MySQL 进行性能测试。以下是一个示例命令:

sysbench oltp_read_write --db-driver=mysql --mysql-host=127.0.0.1 --mysql-user=root --mysql-password=123456 --mysql-db=sysbenchdb --tables=1 --table-size=1000000 prepare

上面的命令利用 sysbench 工具与本地 MySQL 数据库建立连接,创建一个名为 "sysbenchdb" 的数据库,其中包含一张拥有 1,000,000 行数据的测试表。这个操作旨在为之后的性能测试提供必要的测试数据环境。通过准备这些数据,我们可以模拟真实负载条件,对数据库性能进行评估,以确保它在处理大量读写操作时的表现。这有助于验证数据库的稳定性和性能,以满足实际应用程序的需求。

sysbench oltp_read_write --db-driver=mysql --mysql-host=127.0.0.1 --mysql-user=root --mysql-password=123456 --mysql-db=sysbenchdb --tables=1 --table-size=1000000 --threads=8 --time=60 run

上面的命令使用 sysbench 工具,在连接到本地 MySQL 数据库的情况下,执行一个 OLTP(联机事务处理)读写性能测试。在测试过程中,将使用 8 个线程模拟并发访问,执行各种读写操作,包括事务处理。测试的时间持续为 60 秒。这允许我们评估数据库的性能和响应时间,以便在高负载情况下确定其是否能够满足应用程序的需求,以及性能是否符合预期。这个测试有助于发现潜在的性能瓶颈,进一步进行优化或扩展数据库。

3  分析测试结果

命令运行之后,稍等一会儿,就会出现测试的结果,如下所示。

3.1 运行结果

3.2 对运行结果进行翻译

SQL 统计信息:

已执行的查询:

读操作:445,466

写操作:127,263

其他操作:63,634

总共:636,363

事务数:31,815(每秒 530.12 次)

查询数:636,363(每秒 10,603.53 次)

忽略的错误:4 个(每秒 0.07 个)

重新连接次数:0 次(每秒 0.00 次)

一般性能统计:

总共耗时:60.0128

总事件数:31,815

延迟(毫秒):

最小延迟:5.00 毫秒

平均延迟:15.09 毫秒

最大延迟:485.43 毫秒

95th 分位数延迟:20.37 毫秒

总延迟:479,974.06 毫秒

线程公平性:

事件数(平均/标准偏差):3976.8750/18.70

执行时间(平均/标准偏差):59.9968/0.00

3.3 性能分析

在这次 MySQL 性能测试中,共执行了 636,363 条查询,每秒执行了约 10,603 条查询。其中,读操作占大多数(445,466 次),而写操作也相当频繁(127,263 次),而其他类型的操作则较少(63,634 次)。

总共执行了 31,815 个事务,平均每秒执行了约 530.12 个事务。这意味着数据库能够在较高的并发负载下维持相对较高的事务处理性能。

查询的平均延迟为 15.09 毫秒,最大延迟为 485.43 毫秒。延迟在大多数情况下相对较低,而 95th 分位数的延迟在 20.37 毫秒左右,这意味着大多数查询在较短的时间内完成。

性能测试结果表明,MySQL 数据库在这次测试中表现出了良好的性能,具有较高的吞吐量和较低的延迟。这对于支持高负载的应用程序非常重要。同时,线程公平性的标准偏差相对较低,表示性能测试在各个线程之间的分布较为均匀。

请注意,性能测试结果的解释和评估可能因具体应用场景和性能需求而异。这些结果可以帮助你了解数据库的性能表现,从而采取进一步的优化措施,以确保数据库在高负载条件下稳定运行。

4  清理测试

在测试完成后,可以使用以下命令清理测试数据:

sysbench oltp_read_write --db-driver=mysql --mysql-host=127.0.0.1 --mysql-user=root --mysql-password=123456 --mysql-db=sysbenchdb --tables=1 --table-size=1000000 cleanup

这个命令的目的是删除在性能测试中创建的测试数据,以便你可以在下一次测试之前清除旧数据,保持测试环境的干净和一致性。这对于多次测试非常重要,以避免旧数据对新测试结果产生干扰。

结论

通过遵循上述步骤,你可以在云服务器上使用 Docker 安装 MySQL 并使用 sysbench 进行性能测试。测试的实际执行过程中,只需要相应地替换密码和容器 IP 地址,以匹配你的实际配置。此外,根据你的性能测试需求,你可以轻松地修改 sysbench 测试的参数和配置,以满足不同负载和性能场景的要求。这个过程能够帮助你全面评估 MySQL 数据库的性能,以确保它满足你的应用程序的性能需求。无论是进行性能调优还是测试新应用的性能,这个方法都为你提供了有力的工具。

相关文章:

华为云云耀云服务器L实例评测|使用sysbench对云耀云服务器mysql的性能测试

目录 引言 1 在centos上安装mysql 1.1 在云服务器上安装 Docker 1.2 在 Docker 中运行 MySQL 容器 2 安装sysbench并进行性能测试 2.1 安装和配置 sysbench 2.2 运行 sysbench 性能测试 3 分析测试结果 3.1 运行结果 3.2 对运行结果进行翻译 3.3 性能分析 4 清理…...

【译】快速开始 Compose 跨平台项目

原文: Compose Multiplatform application 作者:JetBrains 注意 Compose Multiplatform 中的 iOS 部分目前处于 Alpha 状态。以后可能会有不兼容的更改,届时也许需要手动进行迁移。 你可以使用这个模板来开发同时支持桌面、安卓和 iOS 的跨平…...

高性能服务器之mysql数据库连接池设计与实现

高性能服务器之mysql数据库连接池设计与实现 链接:https://pan.baidu.com/s/1ISZ1Sy087GUeaekW3sV_oA?pwd0t9q 内存泄漏 链接:https://pan.baidu.com/s/1AWPnbuzVSpoP-CnEgJk5hg?pwdaieq 提取码:aieq 线程池 链接:https://pan…...

黑客技术(自学)——网络安全

前言 前几天发布了一篇 网络安全(黑客)自学 没想到收到了许多人的私信想要学习网安黑客技术!却不知道从哪里开始学起!怎么学?如何学? 今天给大家分享一下,很多人上来就说想学习黑客&#xff0c…...

day06-前后端项目上传到gitee、后端多方式登录接口、发送短信功能、发送短信封装、短信验证码接口、短信登录接口

1 前后端项目上传到gitee 2 后端多方式登录接口 2.1 序列化类 2.2 视图类 2.3 路由 3 发送短信功能 4 发送短信封装 4.0 目录结构 4.1 settings.py 4.2 sms.py 5 短信验证码接口 6 短信登录接口 6.1 视图类 6.2 序列化类 1 前后端项目上传到gitee # 我们看到好多开源项目…...

【SA8295P 源码分析 (一)】83 - SA8295P HQNX + Android 完整源代码下载方法介绍

【SA8295P 源码分析 一】83 - SA8295P HQNX + Android 完整源代码下载方法介绍 一、高通官网 Chipcode 下载步骤介绍1.1 高通Chipcode 下载步骤1.2 高通 ReleaseNote 下载方法二、高通 HQX 代码介绍2.1 完整的 HQX 代码结构:sa8295p-hqx-4-2-4-0_hlos_dev_qnx.tar.gz2.2 sa829…...

文献阅读快速法-ChatPDF

如题,直接提供给大家一款能够快速阅读文档的好工具——iTextMaster。 iTextMaster是一款免费的pdf阅读浏览器,上传pdf文档后等待几秒钟,AI就会自动反馈给用户关于文档的摘要总结。十分的方便且实用。 ChatPDF为您提供简洁的文档摘要。对于那…...

Jenkins 内存占用

查看内存占用 # ps aux | grep 9090 root 130854 0.0 0.0 8900 708 pts/1 S 16:23 0:00 grep --colorauto 9090 root 4010748 0.2 30.7 5826500 2502884 ? Ssl Oct13 8:55 /usr/bin/java -Djava.awt.headlesstrue -jar /usr/share/java/jenkins…...

1. vue-sy-admin: 基于vue3+TypeScript的全局过滤器(filters) 封装及示例

在vue3中使用全局filters已经不是必须,有很多种替代方案(直接定义函数即可)。如果项目中使用了unplugin-auto-import插件完全可以将filters导出函数使其在全局自动引入/声明。当然在这里就不说插件的使用了。下面就详细说说如何实现 题外话: 强烈推荐使用 vueuse&a…...

操作系统监控:守护您的计算机系统稳定运行的坚实防线

在数字化时代,计算机系统已成为各行业的关键支撑。为了保证系统的稳定运行,操作系统监控成为了不可或缺的技术手段。监控易运维管理软件,作为一款全面的监控解决方案,能够监控各类Windows、Linux、UNIX等操作系统,包括…...

PostgreSQL | CTE | 使用with子句的通用表达式

CTE(Common Table Expressions) 简单讲,CTE就是日常SQL中出现的with语句,其原理就是通过提前将数据查询出来后作为临时结果集使用,可以与SELECT \ INSERT \ UPDATE \ DELETE的SQL连用。 优点 可读性强 CTE 允许你将…...

A Close Look into the Calibration of Pre-trained Language Models

本文是LLM系列文章,针对《A Close Look into the Calibration of Pre-trained Language Models》的翻译。 预训练语言模型的校准研究 摘要1 引言2 背景3 评测指标4 PLM是否学会了校准?5 现有方法的效果如何?6 结论局限性与未来工作 摘要 预…...

【控制台】报错:Uncaught ReferenceError: process is not defined

文章目录 报错示例: 解决方法参考文献:https://github.com/vfile/vfile/issues/38...

Android自定义AppGlideModule,DataFetcher ,ModelLoaderFactory,ModelLoader,Kotlin(1)

Android自定义AppGlideModule,DataFetcher ,ModelLoaderFactory,ModelLoader,Kotlin(1) 假设实现一个简单的功能,对传入要加载的path路径增加一定的筛选、容错或“重定向”,需要自定义一个模型,基于这个模型,让Glide自动匹配模型…...

uni-app--》基于小程序开发的电商平台项目实战(五)

🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生 🛵个人主页:亦世凡华、 🛺系列专栏:uni-app 🚲座右铭:人生亦可燃烧,亦可腐败&#xf…...

新型的终端复用器 tmux

以前遇到长时间执行任务时,一般是使用nohup加后台运行,但是涉及到少量代码编写。 同事介绍了一个screen命令,根据文档,此命令已经过时,最新的命令是tmux。 tmux的介绍文档,RedHat的这一篇非常不错。 在文…...

标准化后端向前端传来的Json数据

后端响应固定格式给前端: 1,创建一个专门存储数据的类;分别存储响应状态码code,响应数据,传输的消息。 public class CommonData {int code;Object data;String message;public CommonData(int code, String message…...

java 两个list比较,删除相同的元素

概述 在Java开发中,经常需要比较两个List并删除相同的元素。本文将介绍整个流程,并提供相应的代码示例,帮助新手开发者完成这个任务。 流程 下面是比较两个List并删除相同元素的流程: 代码示例 创建两个List 我们首先需要创建两…...

7-3 zust-sy4-10 回文诗

7-3 zust-sy4-10 回文诗 分数 10 作者 张银南 单位 浙江科技学院 回文诗是汉语特有的一种使用词序回环往复的修辞方法,正着读反着读都可以。明末浙江才女吴绛雪作《四时山水诗》,如夏景诗:香莲碧水动风凉,水动风凉夏日长。长日夏凉风动水&…...

【数据结构】排序--插入排序(希尔排序)

目录 一 基本思想 二 直接插入排序 三 希尔排序 一 基本思想 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为 止,得到一个新的有序序列 。 实际中我们玩扑克牌时,就用了插入排序的思想 二…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

macOS 终端智能代理检测

🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...

门静脉高压——表现

一、门静脉高压表现 00:01 1. 门静脉构成 00:13 组成结构:由肠系膜上静脉和脾静脉汇合构成,是肝脏血液供应的主要来源。淤血后果:门静脉淤血会同时导致脾静脉和肠系膜上静脉淤血,引发后续系列症状。 2. 脾大和脾功能亢进 00:46 …...

C++中vector类型的介绍和使用

文章目录 一、vector 类型的简介1.1 基本介绍1.2 常见用法示例1.3 常见成员函数简表 二、vector 数据的插入2.1 push_back() —— 在尾部插入一个元素2.2 emplace_back() —— 在尾部“就地”构造对象2.3 insert() —— 在任意位置插入一个或多个元素2.4 emplace() —— 在任意…...

window 显示驱动开发-如何查询视频处理功能(三)

​D3DDDICAPS_GETPROCAMPRANGE请求类型 UMD 返回指向 DXVADDI_VALUERANGE 结构的指针,该结构包含特定视频流上特定 ProcAmp 控件属性允许的值范围。 Direct3D 运行时在D3DDDIARG_GETCAPS的 pInfo 成员指向的变量中为特定视频流的 ProcAmp 控件属性指定DXVADDI_QUER…...

spring中的@KafkaListener 注解详解

KafkaListener 是 Spring Kafka 提供的一个核心注解,用于标记一个方法作为 Kafka 消息的消费者。下面是对该注解的详细解析: 基本用法 KafkaListener(topics "myTopic", groupId "myGroup") public void listen(String message)…...

Linux 内核内存管理子系统全面解析与体系构建

一、前言: 为什么内存管理是核心知识 内存管理是 Linux 内核最核心也最复杂的子系统之一,其作用包括: 为软件提供独立的虚拟内存空间,实现安全隔离分配/回收物理内存资源,维持系统稳定支持不同类型的内存分配器,最优…...

【异常】极端事件的概率衰减方式(指数幂律衰减)

在日常事件中,极端事件的概率衰减方式并非单一模式,而是取决于具体情境和数据生成机制。以下是科学依据和不同衰减形式的分析: 1. 指数衰减(Exponential Decay) 典型场景:当事件服从高斯分布(正态分布)或指数分布时,极端事件的概率呈指数衰减。 数学形式:概率密度函数…...