【问题标题】:Thread Pool in MariaDB vs Innodb thread and pool settingsMariaDB 中的线程池与 Innodb 线程和池设置
【发布时间】:2023-03-28 07:52:01
【问题描述】:

在我开始在 MariaDB 中使用线程池之前,my.cnf 文件具有以下设置以保持 SQL 服务器稳定。

innodb_additional_mem_pool_size
innodb_buffer_pool_size
innodb_commit_concurrency
innodb_write_io_threads
innodb_read_io_threads
innodb_thread_concurrency
innodb_sort_buffer_size

在得知 MariaDB 免费支持线程池功能后,我添加了 thread_handling=线程池 在 my.cnf 中,我重新启动了 SQL 服务器,一切看起来都很酷,现在我想知道

  1. 上面的 Innodb 设置还算吗?
  2. MariaDB 中的线程池是否管理线程数、内存分配、并发等?
  3. 最后,在开始使用 MariaDB 中的线程池后,我应该保留这些 innodb 设置还是应该删除它们?

谢谢

【问题讨论】:

    标签: multithreading concurrency innodb mariadb pool


    【解决方案1】:
    1. 上面的 Innodb 设置还算吗?

    是的,它们仍然很重要。线程池不知道 innodb 的细节。它甚至不知道您是在 Innodb 表上运行“SELECT 1”还是 DML 语句。一切都是不透明的查询。 Threadpool 知道线程是在运行还是在等待,并尝试以 CPU 数量(或者,如果您在 Unix 上,则为 thread-pool-size)保持正在运行的线程数。 计入线程池的唯一设置是 thread-cache-size

    1. MariaDB 中的线程池是否管理线程数、内存分配、并发等?

    线程数,并发。不是内存分配。

    1. 最后,在开始使用 MariaDB 中的线程池后,我应该继续保留这些 innodb 设置还是应该删除它们?

    不要全部删除。线程池不管理缓冲区大小,因此保留这些非常重要。但是,您可以尝试是否保留或删除 innodb-thread-concurrency,innodb-commit-concurrency,因为它们可能会被线程池淘汰(它们仍然可以在繁重的写入工作量)

    【讨论】:

      【解决方案2】:

      设置...

      • innodb_additional_mem_pool_size -- 在 MySQL 中已弃用并在 5.7 中删除; MariaDB 中可能仍在使用;不是很重要的设置。
      • innodb_buffer_pool_size -- 绝对。这仍然是最重要的设置;留着!
      • 剩下的——保留。

      【讨论】:

        猜你喜欢
        • 2020-02-09
        • 2010-09-18
        • 2020-01-14
        • 2010-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多