我在组复制(多主)基础结构中使用MySQL 8.0.18。目前有4台主服务器相互连接,一切似乎都正常,但在大约2周的时间里,所有服务器上的所有mysqld进程都耗尽了所有交换。ram的使用保持在800 job,因为我怀疑innodb_log_buffer_size正在做它的工作。
服务器规范:
Debian 10
1Gb RAM
3GB交换
20 ssd
Mysql.cnf:
max_connections=20
innodb_log_buffer_size=800M
key_buffer_size=50M
super_read_only=off
gtid_mode = ON
enforce_gtid_consistency = ON
master_info_repository =表
relay_log_info_repository =表
binlog_checksum =无
log_slave_updates = ON
log_bin = binlog
binlog_format =行
transaction_write_set_extraction = XXHASH64
松散组复制_引导组= OFF
松散组复制_启动启动= OFF
松散组复制_ssl_mode=必需
松散组复制_恢复_use_ssl=1
loose-group_replication_unreachable_majority_timeout=80
松散组-复制-自动重新连接-尝试=2015
loose-group-replication-transaction-size-limit=0
相关OS配置:
vm.swappiness=5
我如何使mysql停止使用如此多的交换?
发布于 2020-03-14 17:12:48
你要把这些压缩到1.0GB吗?
mysqldinnodb_log_buffer_size (0.8GB)key_buffer_size=50M,尽管MyISAM已经走了怪不得它在交换。
返回到默认的innodb_log_buffer_size (8M)。这可能足以解决你的问题。
https://serverfault.com/questions/1005883
复制相似问题