展开全部

网络是32313133353236313431303231363533e59b9ee7ad9431333433643732数据库基础架构的主要部分。但是,通常性能基准测试是在本地计算机上完成的,客户端和服务器并置在一起。这样做是为了简化结构并排除一个以上的变量(网络部分),但是我们也忽略了网络对性能的影响。对于像 MySQL Group Replication 这样的产品集群来说,网络更为重要。在这篇文章中,我将介绍网络设置。这些都是简单而微不足道的,但却是让我们更了解复杂网络设置效果的基石。

安装我将使用两台裸机服务器,通过专用的 10Gb 网络连接。我将通过使用 ethtool-s eth1 speed1000duplex full autoneg off 命令更改网络接口速度来模拟 1Gb 网络。

我将运行一个简单的基准: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 网络。显然,1Gb 网络性能是这里的瓶颈,如果我们迁移到 10Gb 网络,我们可以显着改善我们的结果。要查看 1Gb 网络是瓶颈,我们可以检查 PMM(percona 的数据库监控管理开源工具) 中的网络流量图表:

我们可以看到我们的吞吐量达到了 116 MiB/s(或 928 Mb/s),这非常接近网络带宽。但是,如果我们的网络基础设施仅限于 1Gb,我们可以做些什么?

N2 基准-协议压缩MySQL 协议中有一个功能,您可以看到客户端和服务器之间的网络交换压缩:--mysql-compression=on。让我们看看它将如何影响我们的结果。

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

但是 10Gb 网络不是这种情况。压缩/解压缩所需的 CPU 资源是一个限制因素,通过压缩,吞吐量实际上只达到我们没有压缩的一半。现在让我们谈谈协议加密,以及如何使用 SSL 影响我们的结果。

N3基准-网络加密

对于 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%),但对于高并发工作负载,它不会扩展。

mysql bandwidth_内存带宽对mysql影响多大相关推荐

  1. mysql内存片多大_内存带宽对mysql影响多大?

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

  2. golang MySQL 占内存_golang操作mysql使用总结

    前言 Golang 提供了database/sql包用于对SQL数据库的访问, 作为操作数据库的入口对象sql.DB, 主要为我们提供了两个重要的功能: sql.DB 通过数据库驱动为我们提供管理底层 ...

  3. mysql 连接 内存溢出_mysql - MySQL中止连接未知错误 - 堆栈内存溢出

    我使用多jdbc执行全表查询以进行数据迁移. 当我使用并行的75个jdbc查询每个表有近3000000行的差异表时,我发现MySQL在所有数据返回到jdbc之前中止了一个连接. 慢日志: Time: ...

  4. mysql56 配置内存_【mysql】mysql 内存配置调优

    mysql的内存计算公式: mysql used mem = key_buffer_size + query_cache_size + tmp_table_size + innodb_buffer_p ...

  5. mysql日期格式有哪些,mysql日期格式有哪些

    mysql日期格式有哪些 mysql日期格式有5种,分别为: 1."YYYY-MM-DD HH:MM:SS"格式:2."YYYYMMDDHHMMSS"格式:3. ...

  6. mysql 线程内存 回收_MySQL内存使用-线程独享

    对于任何一个数据库管理系统来说,内存的分配使用绝对可以算的上是其核心之一了,所以很多希望更为深入了解某数据库管理系统的人,都会希望一窥究竟,我也不例外. 从内存的使用方式MySQL 数据库的内存使用主 ...

  7. mysql的内存表和临时表

    内存表: session 1 $ mysql -uroot root@(none) 10:05:06>use test Database changed root@test 10:06:06&g ...

  8. mysql 线程缓存_浅析MySQL内存的使用说明(全局缓存+线程缓存)

    首先我们来看一个公式,MySQL中内存分为全局内存和线程内存两大部分(其实并不全部,只是影响比较大的 部分): 复制代码 代码如下: per_thread_buffers=(read_buffer_s ...

  9. 4G内存服务器的MySQL配置优化

    公司网站访问量越来越大(日均超10万PV),MySQL自然成为瓶颈,关于 MySQL 的优化,最基本的是 MySQL 系统参数的优化. MySQL对于web架构性能的影响最大,也是关键的核心部分.My ...

最新文章

  1. FastJson的常用操作
  2. 面试:TCP协议面试10连问,总会用得到,值得收藏!
  3. MooTools教程(2):DOM选择器
  4. 2018-12-08 acm日常 HDU - 6292(模拟找最小)
  5. Matrix Chain Multiplication (堆栈)
  6. 二分搜索 POJ 1064 Cable master
  7. 38译码器verilog代码_Verilog设计实例(2)一步一步实现一个多功能通用计数器
  8. 吞了1000瓶老干妈的南山头铁鹅,Python制作千图成像(附上源代码和应用程序)...
  9. 【配置教程】FDDB生成ROC曲线
  10. 17.CRT的绿色版安装和使用。
  11. GraphRNN: Generating Realistic Graphs with Deep Auto-Regressive Models
  12. 简易的学生社团管理(大二课设)
  13. 实验吧CTF练习题---WEB---猫抓老鼠解析
  14. 邮箱个性签名html模板,邮件个性签名大全_邮件的经典个性签名模板
  15. 中医.自定义短语.搜狗拼音输入法.百度输入法
  16. 一元二次方程虚根求法java_一元二次方程课件ppt
  17. 能玩游戏的计算机名字,适合玩大型游戏的笔记本电脑排行榜前十名
  18. 共享经济跨界创新,共享办公掀起风潮
  19. 使用VisualGDB实现esp32s2 usb HID功能
  20. 答题APP开发解决方案

热门文章

  1. sap 销售订单过量交货和拣配有关设置
  2. SAP 将smartforms的报表转成PDF
  3. sap 实战 table
  4. SAP系统配置常用命令大全
  5. 这届不敢看体检报告的年轻人还能“年轻”多久?
  6. 挺住了这一波,微盟正在进化
  7. java中配置bean_Spring中基于Java的配置@Configuration和@Bean用法
  8. Python报错UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 1413-1418: ordinal not
  9. Python动态类和动态方法的创建和调用
  10. Python中九种格式化输出方法,你都知道吗?