Tom*_*eee 7 mysql innodb performance tuning mysql-5.5
特别是双 CPU 32 核 - 128RAM - RAID 10 SSD。Ubuntu 64 服务器。
有时 Innodb 负载很重 - 每秒约 2000 多个查询。重读和写。
目前我们在默认的 write_io_threads 上运行 4。
我们是否“削弱”了我们服务器的能力?在 max write_io_threads=64 和 read_io_threads = 64 上运行它是否安全?
这个数字是如何确定的?
回到 2012 年 3 月 15 日,我回答了这个问题:MySql 推荐硬件。
在我的回答中,我提到了一位直到今天仍在我雇主的网络托管公司工作的客户。他们目前在循环复制中运行 3 个数据库服务器。每个数据库服务器都有:
我让他们设置
innodb_read_io_threads = 64
innodb_write_io_threads = 64
innodb_thread_concurrency = 0
innodb_buffer_pool_size = 162G
innodb_buffer_pool_instances = 2
innodb_log_file_size = 384M
Run Code Online (Sandbox Code Playgroud)
除了开玩笑,在使用 VM(VMWare、AWS、任何其他基于云的 MySQL 实例)或商品硬件时,您应该小心。但是,在裸机中拥有如此强大的火力,无论如何,您应该利用这些设置,因为 MySQL 5.5 之前的任何 MySQL 版本都可以使用单线程 InnoDB。如果您有 MySQL 5.1,则必须安装并设置 InnoDB 插件(从 MySQL 5.1.38 开始)。所有 Percona Server 5.1 二进制文件都已经有了这些。由于您有 MySQL 5.5,这些设置是本机安装的,并且已经在许多方面进行了测试。您只需要负责调整新的 InnoDB 设置。
请参阅我关于设置 InnoDB 新设置的其他帖子:
Jan 11, 2012: 16 核 12 GB RAM 服务器 MySql 配置 - my.cnfOct 05, 2011:查询在一些较新的 MySQL 版本中运行时间较长Sep 20, 2011:多核和 MySQL 性能Sep 12, 2011:可以让 MySQL 使用多个核心吗?May 26, 2011:关于单线程与多线程数据库性能Nov 24, 2011:为什么 mysql 5.5 比 5.1 慢(linux,使用 mysqlslap)你需要抓住牛角并设置一些基准。让我们回到历史。innodb_read_io_threads 和 innodb_writes_io_threads 没有随 MySQL 5.0 或 5.1 一起提供。有人创建了一个插件并使其在 MySQL 5.1.38 中可用。默认值是 4。我还注意到 Percona Server 在 MySQL 5.1 早期实现了这些东西,默认值是 8。大多数使用 Percona Server 开箱即用的人发誓并经常说它比 MySQL 更好。但是,这种比较通常是通过 tweeking InnoDB 完成的。因此,当然,线程数翻倍的 Percona Server 会更好。
考虑到这种获得更好性能的保守方式(升级到 Percona),除非您进行调优,否则您永远不会真正知道 InnoDB 的好坏或丑陋。请记住我 2011 年 11 月 24 日的帖子。的MySQL的多个版本进行了基准测试,并在某些情况下,InnoDB的MySQL 4.1中下一个单线程环境优于5.x的。那是给予相同水平的竞争环境。
要使天平对您有利,您必须调整 InnoDB。与其给你任何一个明确的 Pick-This-Pick-That 指南,你还需要阅读 InnoDB 为使多个内核活跃起来而提供的设置。并非每个环境都像我客户的双六核服务器或您的双十六核服务器。
如果我必须给你一个好的起点,那就是mysqlperformanceblog.com. 关于 mysql 的所有以性能为中心的内容都可供您阅读、选择和基准测试。
| 归档时间: |
|
| 查看次数: |
13829 次 |
| 最近记录: |