mysql 5.7 binlog 压缩_MySQL binlog 压缩功能的相关介绍-爱可生

36 篇文章 0 订阅
34 篇文章 7 订阅
通过对MySQL 8.0.19和8.0.20版本的测试,发现开启binlog压缩可以显著减少空间占用,但同时会导致性能下降约1%,CPU消耗增加1%。测试环境为120个表和240个并发,压力测试结果显示开启压缩后的性能表现有所下滑。
摘要由CSDN通过智能技术生成

 

为了解决大数据下 binlog 占用空间大问题,在研究这问题。

之前有做过一个 binlog 压缩能节约多少空间的测试,效果上看还是比较理想的,可以节约一半以上的空间。但是这个又引出了一个新的问题,那就是这个功能对性能有多大影响呢?于是我又在测试环境试了一下,测试环境的物理配置如下。

bf553261e7a83eef47afd97ffe5dc479.png

根据之前的经验这套测试环境在 120 个表 + 240 个并发的情况,可以取得一个性能上的极大值;所以在这里就直接使用这个作为测试压力。

6c8b8a59742af9d7c741e600bf80e2a5.png

8.0.19 场景

第一步:安装。

dbma-cli-single-instance --port=3306 --max-mem=131072 \--pkg=mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz install

第二步:创建测试用户。

create user sysbench@'%' identified by 'sysbench';create database tempdb;grant all on tempdb.* to sysbench@'%';

第三步:填充数据并进行压力测试。

sysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_point_select prepare

sysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_point_select run

性能表现。

b31792456051b2ac2eb2de487997f350.png

资源消耗情况。

5e602a934be4b70bb3cbb6cf0d9ad351.png

8.0.20 + binlog 压缩

第一步:安装。

dbma-cli-single-instance --port=3306 --max-mem=131072 \--pkg=mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz install

第二步:创建测试用户。

create user sysbench@'%' identified by 'sysbench';create database tempdb;grant all on tempdb.* to sysbench@'%';

-- dbm-agent 默认会开启 binlog 压缩show global variables like 'binlog_transaction_compression%';+-------------------------------------------+-------+| Variable_name | Value |+-------------------------------------------+-------+| binlog_transaction_compression | ON || binlog_transaction_compression_level_zstd | 3 |+-------------------------------------------+-------+2 rows in set (0.00 sec)

第三步:填充数据并进行压力测试。

sysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_point_select prepare

sysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_point_select run

性能表现。

35b270825e2c217cf20173ffbd38e981.png

资源消耗情况。

e3de703c8cf0995677c4f201436cadc3.png

8.0.20 + binlog 不压缩

第一步: 关闭 binlog 压缩功能。

set @@global.binlog_transaction_compression='OFF';

show global variables like 'binlog_transaction_compression%';+-------------------------------------------+-------+| Variable_name | Value |+-------------------------------------------+-------+| binlog_transaction_compression | OFF || binlog_transaction_compression_level_zstd | 3 |+-------------------------------------------+-------+2 rows in set (0.01 sec)

第二步:进行压力测试。

sysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_point_select run

性能表现。

bf1e57fa45a6b3090b5bdecfb48c006e.png

资源消耗情况。

59b10de9841643e42413e9d0acc75660.png

结论

开启 binlog 压缩会对性能有影响,大概会让性能下降 1%,cpu 多消耗 1%。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值