假设生产的OLTP系统主要包含InnoDB表


配置错误/配置错误的系统的常见症状是什么?
您最常更改默认配置的哪些配置参数?
如何在出现问题之前发现潜在的瓶颈?
如何识别和解决活动中的问题?

任何详细描述特定status变量和诊断的轶事都将受到赞赏。
/>

评论

这个问题非常广泛。您可以将其分为四个问题吗? (甚至您的项目符号问题都难以置信地广泛。您能否以具体问题实例化它们?)

#1 楼

这是Sun的Jenny Chen撰写的有关InnoDB调优的好文章-她在MySQL上写了很多博客,其中有些是Solaris特有的(例如,使用DTrace),但是整个博客充满了有趣的花絮。

评论


珍妮·陈是谁?

–起搏器
2015年4月9日在12:15

我很伤心,文章是404

–总推杆
20年1月12日在19:49

#2 楼

有趣的是,在MySQL 5.5中,您现在可以拥有多个innodb缓冲池。
您关心的参数是


innodb_buffer_pool_instances(默认为1)

innodb_buffer_pool_size(默认为1G)

大约一个月后,我计划为客户端实现112个innodb缓冲池。
UPDATE 2011-02-27 21:57 EDT
我发现innodb_buffer_pool_instances的最大值是64
我决定配置144 GB,所以我将innodb_buffer_pool_instances设置为18,将innodb_buffer_pool_size设置为8。我当前正在向服务器加载450GB
UPDATE 2011-04-28 13:44 EDT
我尝试了多个InnoDB缓冲池。线程锁定和争用过多。我切换到一个162GB的缓冲池+将read_io_threads和write_io_threads设置为64(最大值)。这样效果更好。
UPDATE 2012-07-03 17:27 EDT
我学到了一些关于MySQL的惊人知识。如果您分配的单个整体式InnoDB缓冲池大于已安装的总数量除以物理CPU数量,则由于InnoDB缓冲池已满,将促使操作系统定期更换内存。 MySQL 5.5的选项innodb_buffer_pool_instances可用于拆分缓冲池。昨天,我为去年在回答中提到的客户正确实施了此操作。我的客户端缓冲池还有162GB。我已将服务器的innodb_buffer_pool_instances选项设置为2,因为每个数据库服务器都是双六核的。我本来打算将其设置为12,但后来一位同事向我展示了Jeremy Cole的有关MySQL和Swappiness的博客。阅读后,我立即为我的客户将其付诸实践。我运行了此命令
numactl --hardware

我看到了192GB的服务器RAM和96GB到每个物理核心的映射。因此,我将innodb_buffer_pool_instances设置为2。现在情况看起来不错。我将更新答案,以了解这如何影响接下来2个月的内存交换。

评论


@RolandoMySQLDBA,您好,在jeremy的博客中,我找不到任何设置innodb实例等于物理CPU数量的连接或结论都可以解决交换问题。是否有多个innodb实例会自动在内存节点之间保持平衡,而无需设置numactl --interleave = all,刷新Linux的缓冲区高速缓存或强制操作系统分配InnoDB的缓冲池?

–文仁
14年8月15日在9:19

@Rolando,尼斯2x 100 GB内存。是哪个客户

–起搏器
2015年4月9日在12:20



我认为“实例”是这样实现的:(块号)MOD(数字实例)->(将块放入哪个实例)。这与NUMA无关。

–里克·詹姆斯(Rick James)
17年6月30日在21:47

#3 楼

您可能需要探索以下资源:


最佳实践常见问题解答

手册:调整服务器参数

手册: InnoDB调整

较早的重要变量列表。


#4 楼

首先在my.cnf中增加默认的InnoDB缓冲池大小(我相信默认为8MB)

您应该将其设置为RAM大小的75%(通常)

#5 楼


您最经常更改哪些配置参数

默认设置?


内存配置

评论


您能否提供更多说明性答案?您会如何改变?为什么要进行这些更改?更改之后,您的预期观察结果是什么?您怎么知道将其更改为什么?

– jcolebrand♦
2011-02-14 15:01

开箱即用的mysql配置已准备好快速设置myisam表(因为大多数用户以这种方式使用它),此外,要获得优化良好的服务器,您应该选择要使用的“主要”引擎(innodb或mysql),因为难以配置数据库以实现展位引擎的出色性能,mysql具有用于myisam和innodb引擎的单独缓冲区

– sbczk
2011-2-15在18:07