IBM Power Systems 上的 MongoDB 调优指南(1)
 
- UID
- 1066743
|

IBM Power Systems 上的 MongoDB 调优指南(1)
MongoDB 是一个面向文档的 NoSQL 数据库,能在使用默认环境的 IBM® Power Systems™ 上高效运行。但是,您可以通过调优一些环境设置,在 Power Systems 上实现最佳性能,本文将介绍这些调优方法。
系统级调优
使用 PowerKVM 的虚拟化级调优
- 主机调优:超频、磁盘调优
- 来宾调优:内存关联、数据磁盘直通、网络外围组件互联 (PCI) 直通、CPU 解锁
应用程序级调优
- Java 调优:大页面、堆大小、垃圾收集线程、压缩引用
- 分片/集群调优
本文中的指南源自对 工作负载和其他客户概念证明 (POC) 工作负载的测试。每个客户端工作负载都有不同的需求。请仅使用这些建议作为指导;您需要根据计划部署的实际工作负载来调整具体的调优需求。
系统级调优除非另行说明,以下指南适合在 Linux on Power 上运行的所有 MongoDB 工作负载。
频率本节将介绍如何设置频率来超频。
- 在裸机环境中,CPU 能源调节器由操作系统 (OS) 控制。
- 使用 cpupower 命令验证和设置频率,如下所示:cpupower -c 0-159 frequency-info
cpupower -c 0-159 frequency-set -g performance
- 在 IBM PowerVM™ 环境中,使用硬件管理控制台 (HMC) 设置想要的性能:
- 登录到 ASM (Advanced System Management)。
- 展开 System Configuration -> Power Management。
- 单击 Power Mode Setup -> Enable Dynamic Power Save (favor performance) mode。
- 单击 Continue。
- 单击 Save Settings。
同时多线程 (SMT) 使用 SMT,您可以在同一个核心上同时运行多个线程的指令流。在基于 IBM POWER8® 处理器的服务器上,SMT8 是默认设置,大部分工作负载都能使用此默认设置高效地运行。对于数据库,将 SMT 设置为 SMT8 模式被视为一种最佳实践。
可使用 ppc64_cpu 命令将 SMT 模式设置为 8、4 或 2,如下所示:
- SMT8:ppc64_cpu –smt=on
- SMT4:ppc64_cpu –smt=4
- SMT2:ppc64_cpu –smt=2
ulimit对于 ulimit 设置,可使用 的建议。
磁盘调优对于内部存储:
- 使用磁盘簇 (JBOD),使用 iprconfig 命令来格式化驱动器。可在以下地址找到 iprconfig 实用程序的更多细节:
- 使用以下设置打开写磁盘缓存,其中 x 是磁盘编号:sdparm--set=WCE /dev/sdx
- 对于生产工作负载,您可能需要使用固态硬盘 (SSD) 来满足工作负载的每秒输入/输出操作次数 (IOPS) 需求。
对于外部存储:
对于客户工作负载,可使用独立磁盘冗余阵列 (RAID) 保护。使用 RAID0 执行基准测试。您应确定最适合您的特定环境的 RAID 级别。
内存关联和 CPU 绑定- 内存关联在使用 PowerVM 时非常重要。有关内存关联的更多信息,请查阅以下 IBM Redbooks® 中的 “第 3 章. IBM POWER Hypervisor”:
- 将运行的基准测试进程固定到特定核心。
- 要在创建虚拟机 (VM) 时避免非一致性内存存取 (NUMA) 镜像,可将内存限制到单个芯片或节点。
- 在生产环境中不推荐 CPU 绑定,但对于基准测试概念证明,可使用 taskset 命令执行 CPU 绑定。例如,要在拥有 10 个核心(80 个逻辑 CPU)的 CPU 的第一个插槽上运行 MongoDB,可使用以下命令:
taskset –c 0-79 numactl –localalloc mongod --config /home/mongoDB/test/mongodb.conf
|
虚拟化级调优在虚拟化环境中运行 MongoDB 时,以下指南描述了如何配置实际服务器(主机)和虚拟机(来宾)。
主机调优- 超频:遵循 部分提供的建议。
- 磁盘调优:遵循 部分提供的建议。
来宾调优以下来宾调优指南将会介绍应如何配置每个虚拟机。
内存关联除非另行说明,以下建议适合 PowerKVM 3.1 以前的 IBM PowerKVM® 环境。
- 使用 PowerVM 时,可使用动态平台优化器 (DPO) 工具。有关更多信息,请查阅 IBM Redbooks
- 基于 POWER8 处理器的服务器包含多个芯片或插槽。根据工作负载的 CPU 和内存需求,一种最佳实践是将来宾限制在芯片或插槽边界内。下面的示例展示了如何将来宾限制在一个拥有 4 个节点的 IBM Power® System S822L 主机上的一个插槽上:
...
numactl -H
available: 4 nodes (0-1,16-17)
node 0 cpus: 0 8 16 24 32
node 0 size: 65536 MB
node 0 free: 63286 MB
node 1 cpus: 40 48 56 64 72
node 1 size: 131072 MB
node 1 free: 131000 MB
node 16 cpus: 80 88 96 104 112
node 16 size: 65536 MB
node 16 free: 64286MB
node 17 cpus: 120 128 136 144 152
node 17 size: 65536 MB
node 17 free: 64286 MB
|
|
|
|
|
|
|