首页 > 数据库 >技术分享 | 网络带宽如何影响 MySQL 性能

技术分享 | 网络带宽如何影响 MySQL 性能

时间:2022-12-20 15:32:27浏览次数:64  
标签:-- mysql 10Gb 网络 MySQL 网络带宽 分享 1Gb


作者:Vadim Tkachenko

翻译:管长龙

网络是数据库基础架构的主要部分。但是,通常性能基准测试是在本地计算机上完成的,客户端和服务器并置在一起。这样做是为了简化结构并排除一个以上的变量(网络部分),但是我们也忽略了网络对性能的影响。

对于像 MySQL Group Replication 这样的产品集群来说,网络更为重要。

在这篇文章中,我将介绍网络设置。这些都是简单而微不足道的,但却是让我们更了解复杂网络设置效果的基石。

 

安装

我将使用两台裸机服务器,通过专用的 10Gb 网络连接。

我将通过使用 ​​ethtool-s eth1 speed1000duplex full autoneg off​​ 命令更改网络接口速度来模拟 1Gb 网络。

技术分享 | 网络带宽如何影响 MySQL 性能_MySQL

我将运行一个简单的基准:

sysbench oltp_read_only --mysql-ssl=on --mysql-host=172.16.0.1 --tables=20 --table-size=10000000 --mysql-user=sbtest --mysql-password=sbtest --threads=$i --time=300 --report-interval=1 --rand-type=pareto

运行时线程数从 1 到 2048 不等。所有数据都适合内存 ​​-innodb_buffer_pool_size​​ 足够大。因此工作负载在内存中占用大量 CPU:没有 IO 开销。

操作系统:Ubuntu 16.04

 

N1 基准-网络带宽

在第一个实验中,我将比较 1Gb 网络和 10Gb 网络。

技术分享 | 网络带宽如何影响 MySQL 性能_网络带宽_02

 

技术分享 | 网络带宽如何影响 MySQL 性能_MySQL_03

显然,1Gb 网络性能是这里的瓶颈,如果我们迁移到 10Gb 网络,我们可以显着改善我们的结果。

要查看 1Gb 网络是瓶颈,我们可以检查 PMM(percona 的数据库监控管理开源工具) 中的网络流量图表:

技术分享 | 网络带宽如何影响 MySQL 性能_数据库_04

我们可以看到我们的吞吐量达到了 116 MiB/s(或 928 Mb/s),这非常接近网络带宽。

但是,如果我们的网络基础设施仅限于 1Gb,我们可以做些什么?

 

N2 基准-协议压缩

MySQL 协议中有一个功能,您可以看到客户端和服务器之间的网络交换压缩:​​--mysql-compression=on​​。

让我们看看它将如何影响我们的结果。

技术分享 | 网络带宽如何影响 MySQL 性能_网络带宽_05

 

技术分享 | 网络带宽如何影响 MySQL 性能_数据库_06

这是一个有趣的结果。当我们使用所有可用的网络带宽时,协议压缩实际上有助于改善结果。

技术分享 | 网络带宽如何影响 MySQL 性能_mysql_07

 

技术分享 | 网络带宽如何影响 MySQL 性能_网络带宽_08

但是 10Gb 网络不是这种情况。压缩/解压缩所需的 CPU 资源是一个限制因素,通过压缩,吞吐量实际上只达到我们没有压缩的一半。

现在让我们谈谈协议加密,以及如何使用 SSL 影响我们的结果。

 

N3基准-网络加密

技术分享 | 网络带宽如何影响 MySQL 性能_MySQL_09

 

 

 

技术分享 | 网络带宽如何影响 MySQL 性能_网络带宽_10

技术分享 | 网络带宽如何影响 MySQL 性能_MySQL_11

技术分享 | 网络带宽如何影响 MySQL 性能_mysql_12

对于 1Gb 网络,SSL 加密显示了一些损失 - 单线程约为 10% - 但是否则我们再次达到带宽限制。我们还看到了大量线程的可扩展性,这在 10Gb 网络案例中更为明显。

使用 10Gb 时,SSL 协议在 32 个线程后不会扩展。实际上,它似乎是 MySQL 目前使用的 OpenSSL 1.0 中的可伸缩性问题。

在我们的实验中,我们看到 OpenSSL 1.1.1 提供了更好的可伸缩性,但是您需要从链接到 OpenSSL 1.1.1 的源代码中获得特殊的 MySQL 构建才能实现这一点。我没有在这里展示它们,因为我们没有生产二进制文件。

 

结论

1. 网络性能和利用率将影响一般应用程序吞吐量。

2. 检查您是否达到了网络带宽限制。

3. 如果受到网络带宽的限制,协议压缩可以改善结果,但如果不是,则可能会使事情变得更糟。

4. SSL 加密在线程数量较少的情况下会有一些损失(约10%),但对于高并发工作负载,它不会扩展。

阅读原文:

​https://www.percona.com/blog/2019/02/19/how-network-bandwidth-affects-mysql-performance/​

标签:--,mysql,10Gb,网络,MySQL,网络带宽,分享,1Gb
From: https://blog.51cto.com/u_15077536/5955952

相关文章

  • 技术分享 | 实战 MySQL 8.0.17 Clone Plugin
    作者:陈俊聪背景很神奇,5.7.17和8.0.17,连续两个17小版本都让人眼前一亮。前者加入了组复制(GroupReplication)功能,后者加入了克隆插件(ClonePlugin)功能。今天我们实战测......
  • 技术分享 | 死锁分析案例
    高鹏 爱可生开源社区 2019-08-16作者:高鹏 文章末尾有他著作的《深入理解MySQL主从原理32讲》,深入透彻理解MySQL主从,GTID相关技术知识。一、问题由来这是我同事问我的一......
  • 故障分析 | MySQL:唯一键约束失效
    作者:胡呈清爱可生DBA团队成员,擅长故障分析、性能优化,个人博客:https://www.jianshu.com/u/a95ec11f67a8,欢迎讨论。最近遇到一个故障:单主模式5节点MGR集群,在使用mysqlshe......
  • docker-compose 编排Net6项目,redis/mysql/nlog实战
    十年河东,十年河西,莫欺少年穷学无止境,精益求精1、新建net6webapi项目一个非常简单的net6项目,使用mysql数据库,redis做缓存   关于项目的搭建,这里不做说明,本篇主......
  • 在MySQL中INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL JOIN 有什么区别?
    我们有两张表:TableA:id  firstName                  lastName.......................................1   arun               ......
  • mysql查看表结构和注释
    mysql查看表结构和注释查看表结构descusers;查看表结构以及注释showfullcolumnsfromusers;......
  • 技术分享 | MySQL 数据库如何改名?
    作者:杨涛涛资深数据库专家,专研MySQL十余年。擅长MySQL、PostgreSQL、MongoDB等开源数据库相关的备份恢复、SQL调优、监控运维、高可用架构设计等。目前任职于爱可生,为......
  • 技术分享 | percona QAN 介绍
    作者:孙健爱可生研发工程师,负责高可用组件相关开发。本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。一、背景QAN(QueryAna......
  • 技术分享 | MySQL 存储过程中的只读语句超时怎么办?
    作者:杨涛涛资深数据库专家,专研MySQL十余年。擅长MySQL、PostgreSQL、MongoDB等开源数据库相关的备份恢复、SQL调优、监控运维、高可用架构设计等。目前任职于爱可生,为......
  • 第07期:有关 MySQL 字符集的 SQL 语句
    本篇为理清字符集的续篇​​(上一篇:第06期:梳理MySQL字符集的相关概念)​​,重点讲述字符集涉及到的sql语句用法。一、characterintroducer翻译过来就是字符引导。也就是针......