Jes*_*sta 6 mysql innodb tuning percona-server xtradb
OLTP 数据库的硬件规格
软件规格
我的首要任务是数据完整性/保护,其次是性能。
当我提到“Percona Server”这个词时,我首先想到的是:“数据库服务器有多个 CPU 吗?” 如今,这已被视为理所当然。不幸的是,大多数人忘记配置 MySQL 或 Percona Server 来调用这些多个 CPU。
带有 InnoDB 5.1 插件的 MySQL 5.1、MySQL 5.5 和 Percona Server 都有增加线程的选项。以下是您可能希望调整的这些选项以及其他 InnoDB 功能:
innodb_thread_concurrency设置 InnoDB 可以保持打开的并发线程数的上限。为此设置的最佳舍入数字是(2 X CPU 数量)+ 磁盘数量。正如我从 2011 年 5 月的 Percona NYC 会议上第一手了解到的那样,您应该将其设置为 0,以便提醒 InnoDB 存储引擎找到其运行环境的最佳线程数。
innodb_concurrency_tickets设置可以绕过并发检查而不受惩罚的线程数。达到该限制后,线程并发检查再次成为常态。
innodb_commit_concurrency设置可以提交的并发事务数。由于默认值为 0,因此不设置此值将允许同时提交任意数量的事务。
innodb_thread_sleep_delay设置 InnoDB 线程在重新进入 InnoDB 队列之前可以休眠的毫秒数。默认值为 10000(10 秒)。
innodb_read_io_threads和innodb_write_io_threads(均自 MySQL 5.1.38 起)分配指定数量的线程用于读取和写入。默认值为 4,最大值为 64。
当达到 innodb_thread_concurrency 时,innodb_replication_delay在从属设备上施加线程延迟。
innodb_read_ahead_threshold允许在切换到异步读取之前线性读取设定数量的范围(64 页 [page = 16K])。
如果我说出更多的选择,时间就会溜走。您可以在MySQL 的文档中阅读有关它们的信息。
切换到 RAID:请坚持使用 RAID10。维护其他冗余设置更容易,尤其是 RAID5。。另外,请确保您的 RAID 卡具有最新的固件。否则,RAID 固件可能会与操作系统内核发生冲突,从而导致磁盘崩溃或总体吞吐量降低。
至于Is ext4 ok or should I create a separate xfs volume for the data?
,请记住 ext3 对每个文件的最大大小限制为 2TB。如果您不处理 TB 级的数据,请不要担心使用 ext3 或 ext4。
单独的数据卷将提高磁盘性能,因为 mysqld 不会与操作系统竞争。