mysql开启binlog影响性能_技术分享 | MySQL binlog 压缩功能对性能的影响

在8.0.19和8.0.20版本中,通过dbma-cli工具进行了binlog压缩功能的开启和关闭的对比测试。在120个表和240个并发的压力下,开启binlog压缩可以显著节省存储空间,但性能下降约1%,CPU消耗增加1%。测试结果显示,binlog压缩虽节约空间,但可能对高并发环境的性能产生一定影响。
摘要由CSDN通过智能技术生成

概要

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

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

45467a6281a1d040482a14c61c862564.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_read_select preparesysbench --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_read_select run

性能表现。

e149200fbb09076165716f94091bc5bd.png资源消耗情况。

d5300ef45d8834f718acf5bcd0dec101.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 preparesysbench --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_read_select run

性能表现。

f57c35d3a8134347583a0a1b12c5a3d4.png资源消耗情况。

f2875eff9342850a9fe486c03b6aeafe.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_read_select run

性能表现。

a001e209d555586d4f81b58cfe99ac9c.png资源消耗情况。

4d925c8725bec7b90152e25e26992062.png

结论

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

b9d3378afbad07bad09c5987b51d89bf.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值