《科技传播》2011•1(上)155 信息科技Information Technology MySQL中InnoDB存储引擎在NUMA系统上的优化 周 渊 ,王力生 同济大学电子与信息工程学院 ,上海 201804 摘要 本文对InnoDB引擎进行了代码级的深入研究,详细剖析了NUMA系统中软件优化的要点并将InnoDB针对NUMA 特性进行了优化 ,有效减小系统中的内存访问开销。在 Intel 的最新 Xeon7500 系列处理器上进行了性能评测 ,结果显示该方案取得了一定的成果。 关键词 MySQL;InnoDB存储引擎;NUMA系统中图分类号 TP311 文献标识码 A 文章编号 1674-6708(2011)34-0155-02 0 引言 InnoDB 是 MySQL 上一个性能非常优秀的存储引擎 ,其设计目标是高效处理大容量数据。除了提供外键、事务处理特性外 ,InnoDB 还借鉴了很多 Oracle 上的特性 ,如支持行锁 ,不加锁读取等。InnoDB 也有很多自己的特点诸如 Insert buffering、Double write 等。凭借这些优点 ,InnoDB 引擎已经具备了一个大型数据库所需的基本性能 ,内嵌 InnoDB 引擎的 MySQL 应用越来越广。Intel 在最近发布的处理器中使用了 NUMA 技术 [1],这对现有的应用程序是一个新的机遇和挑战。然而著名数据库厂商 Oracle 推荐关闭处理器的 NUMA 特性 ,以保证系统性能不会出现下降。这就出现了数据库引擎是否能够充分利用 NUMA 系统特性的问题。 本文对 InnoDB 引擎进行了代码级的深入研究 ,详细剖析了NUMA系统中软件优化的要点并将InnoDB针对NUMA特性进行了优化 ,有效减小系统中的内存访问开销。在 Intel 的最新 Xeon7500 系列处理器上进行了性能评测 ,结果显示该方案取得了一定的成果。 1 NUMA 技术 随着目前应用程序对计算机性能要求不断提高 ,传统的 SMP 处理器系统应用越来越广 ,规模越来越大 ,但由于传统的 SMP 系统中 ,公用系统总线的同一时间只能被一个处理器占用。当处理器越来越多时 ,其系统总线的竞争冲突加大 ,必然成为性能瓶颈。所以目前商用服务器中 SMP 系统的处理器数目一般只有 10 个左右 ,其扩展能力大大收到限制。NUMA 技术较好解决了 SMP 系统的可扩展性问题 ,已成为当今高性能服务器的主流体系结构之一。目前 ,国外著名的服务器厂商都先后推出了基于 NUMA 架构的高性能服务器 ,如早期 HP 的 Superdome、SGI 的 Altix 3000、IBM 的 x440、NEC 的 TX7、AMD 的 Opteron 等 ,Intel 最新一代的基于Nehalem 架构的 CPU(如 Xeon7500 系列)也采用了 NUMA 技术 [2]。 利用 NUMA 技术 ,可以把多个 CPU 组合在一台服务器内。其系统拓扑结构示意图如图 1 所示 : node0 node1 node2 node3 图 1 NUMA 架构示意 NUMA 服务器的基本特征是具有多个 CPU 节点 ,其中每个CPU 节点由多个 CPU(如图 1 中的 node0 中有 4 个)组成。类似于一个 SMP 系统 ,每个节点具有独立的本地内存、I/O 控制器等。由于其节点之间可以通过互联模块进行连接和信息交互 ,因此每个 CPU 都可以访问整个系统的内存。访问本节点内存的速度(本地访问)将远远高于访问邻节点内存(远端访问)
mysql中innodb存储引擎在numa系统上的优化_MySQL中InnoDB存储引擎在NUMA系统上的优化...
最新推荐文章于 2021-03-23 16:34:18 发布