AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 345738
Accepted
KMT
KMT
Asked: 2025-03-15 12:14:06 +0800 CST2025-03-15 12:14:06 +0800 CST 2025-03-15 12:14:06 +0800 CST

MariaDB v10.11 与 v10.1 复制性能

  • 772

我们正在将 MariaDB 10.1 主从网络升级到 MariaDB 10.11。我们分两个阶段进行 - 将所有从属服务器升级到 v10.11,然后在以后引入使用 v10.11 的新主服务器。

应用程序与新版本完全兼容,没有任何问题。我在同一网络中设置了新的生产从属服务器 (v10.11),使用与生产相同的 Linode 实例类型 (50 vcpu、128GB RAM)。数据库大小约为 500GB。

新的 v10.11 实例与其他 v10.1 从属实例具有相同的 InnoDB 配置设置。所有实例的 innodb_buffer_pool_size=100G。启动复制时,这些实例中的滞后不断增加。我注意到这些实例的 CPU 使用率低于 50%,每秒查询数低于 4k。当旧版本 (v10.1) 通常存在滞后时,其 CPU 使用率通常高于 120%,每秒查询数高于 15k,几分钟后就会赶上主版本。

v10.11 中的 seconds_behind_master 几乎变成了 3-4 天。在一个新的从属服务器中,我增加了 slave_parallel_thread=12,情况有所改善。它的 CPU 达到约 300%,每秒查询平均约为 20k。但另一个 v10.11 的 slave_parallel_therads=0 仍比主服务器落后几天。它没有充分利用 CPU - 只有 40-50% 的 CPU。每秒查询数低于 4k。MariaDB v10.1 从属服务器以 slave_parallel_threads=0 运行,我从未遇到过这么长的延迟。就像我说的,延迟通常会在几分钟内稳定下来。

我一直尝试调整一些设置,重新启动一些从属设备,重建从属设备,但都没有任何效果。

一些问题/疑虑 -

  1. 为什么 MariaDB 10.1 在复制方面表现优于新版 MariaDB 10.11。v10.1 - 未启用 slave_parallel_threads
  2. 新版 v10.11 中的 CPU 利用率比 v10.1 低得多,每秒查询数更高

有人经历过这种情况吗?

所有从属设备(v10.1 和 v10.11)均具有以下设置 -

wait_timeout = 60
interactive_timeout = 60

max_connections = 1000

innodb_buffer_pool_size = 100G
max_allowed_packet = 1G

innodb_strict_mode=OFF
sql_mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

innodb_data_file_path=ibdata1:500M:autoextend

read_rnd_buffer_size = 256M
sort_buffer_size = 256M
join_buffer_size = 256M

tmp_table_size= 1536M
max_heap_table_size= 1536M

skip_slave_start
slave-type-conversions=ALL_NON_LOSSY

read_buffer_size = 20M
#innodb_additional_mem_pool_size = 256M

innodb_log_file_size = 1G
innodb_buffer_pool_instances = 40
skip_name_resolve = 1

tmp_table_size= 1536M
max_heap_table_size= 1536M

server_id=114
#slave-type-conversions=ALL_NON_LOSSY

max_connect_errors = 1000000
log_warnings = 2

####
read_buffer_size = 20M
#innodb_additional_mem_pool_size = 256M

query_cache_type=0

设置图

replication
  • 1 1 个回答
  • 45 Views

1 个回答

  • Voted
  1. Best Answer
    dbdemon
    2025-03-15T18:08:08+08:002025-03-15T18:08:08+08:00

    免责声明:我没有您的使用案例经验,以下内容仅基于我对文档的阅读。

    来自有关缓冲池的文档:

    请注意,在 MariaDB 10.4.4 之前,分配的总内存比指定大小大约多 10%,因为还为控制结构和缓冲区保留了额外的空间。

    因此,看起来您必须innodb_buffer_pool_size在 10.11 中设置更高的值才能获得与 10.1 中相同的缓冲池实际大小和类似的性能。 (或者我误解了文档的内容?)

    (请注意,innodb_buffer_pool_size现在可以动态设置,而无需重新启动。)

    我还注意到您有innodb_buffer_pool_instances=40。此系统变量在 10.6 中被删除,因此如果您尝试在 10.11 中使用它,您应该会收到错误。(文档说“拆分缓冲池的原始原因大部分已经消失”。)

    另一个需要关注的变量可能是新的(自 10.9 起)innodb_log_file_buffering。

    另外,innodb_log_file_size:这是组中每个文件的大小。如果我理解正确的话,innodb_log_files_in_group10.1 中的默认值为 2,而 10.11 中的变量不再存在。也许您可以通过将值加倍来补偿innodb_log_file_size?(顺便说一句,这现在也是一个动态变量。)

    • 1

相关问题

  • 如何阻止 MySQL 从站将更改复制到“mysql”数据库?

  • 在同一台物理服务器上运行复制是不明智的吗?

  • 有没有办法以小于 1 秒的分辨率测量 MySQL 中的复制滞后?

  • 运行时间偏移延迟复制的最佳实践

  • PostgreSQL 9.0 Replication 和 Slony-I 有什么区别?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve