共计 2651 个字符,预计需要花费 7 分钟才能阅读完成。
作者:蒋乐兴
MySQL DBA,善于 python 和 SQL,目前保护着 github 的两个开源我的项目:mysqltools、dbmc 以及独立博客:https://www.sqlpy.com。
本文起源:原创投稿
* 爱可生开源社区出品,原创内容未经受权不得随便应用,转载请分割小编并注明起源。
概要
之前有做过一个 binlog 压缩能节约多少空间的测试,成果上看还是比拟现实的,能够节约一半以上的空间。然而这个又引出了一个新的问题,那就是这个性能对性能有多大影响呢?于是我又在测试环境试了一下,测试环境的物理配置如下。
依据之前的教训这套测试环境在 120 个表 + 240 个并发的状况,能够获得一个性能上的极大值;所以在这里就间接应用这个作为测试压力。
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
性能体现。
资源耗费状况。
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
性能体现。
资源耗费状况。
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
性能体现。
资源耗费状况。
论断
开启 binlog 压缩会对性能有影响,大略会让性能降落 1%,cpu 多耗费 1%。
正文完