基于TPC-C测试的GBase 8c性能优化

💡 原文英文,约1300词,阅读约需5分钟。
📝

内容提要

为优化GBase 8c在TPC-C标准测试中的性能,需要关注硬件资源、操作系统配置、网络利用和数据库参数调整。确保CPU使用率超过95%,优化内存和磁盘访问,通过调整操作系统设置和优化数据库参数提升性能。在NUMA架构下,合理绑定CPU和网络接口,确保内存访问的局部性以提高性能。

🔎

延伸解读

NUMA架构下的资源绑定策略

文章以鲲鹏920处理器(128核、4个NUMA节点)为例,说明在TPC-C测试中需手动绑定16个CPU核心(每节点4核)处理10GbE网卡中断,并通过脚本bind_net_irq.sh实现。数据库线程池配置中,group_num建议与NUMA节点数一致,cpubind_info可指定绑定范围,如示例将每节点4核用于网络中断,其余用于数据库。这种绑定旨在减少跨节点内存访问,提升局部性。

操作系统配置的关键调整点

为消除硬件资源使用限制,文章列出多项OS优化:验证CPU调频为performance模式;禁用irqbalance以避免中断负载不均;禁用透明大页(THP)防止内存碎片和性能波动;关闭防火墙;调整limits.conf中nofile和nproc至1024000,以支持高并发连接和进程。这些设置需重新登录生效,适用于高负载数据库服务器。

数据库参数调优的核心逻辑

针对TPC-C业务模型,文章强调调整work_mem、maintenance_work_mem、max_process_memory和shared_buffers等参数。其中max_process_memory建议设为服务器内存的80%左右,shared_buffers约为max_process_memory的60%。启用线程池时,thread_num建议为CPU核数的3-5倍,group_num与NUMA节点数匹配,并通过cpubind_info控制CPU绑定方式,以优化资源利用。

性能测试的监控与目标

文章指出性能测试的目标是最大化硬件资源利用率,确保网络和磁盘不成为瓶颈,CPU使用率高于95%且主要由用户进程消耗,sys占比尽量低。使用perf top监控时,每个函数的CPU时间应低于5%,避免出现热点函数。这些指标帮助判断优化是否有效,并指导进一步调整。

❓

Q&A

如何优化GBase 8c在TPC-C测试中的性能?

优化GBase 8c性能需要关注硬件资源、操作系统配置、网络利用和数据库参数调整。

在NUMA架构下,如何提高内存访问性能?

在NUMA架构下,合理绑定CPU和网络接口,确保内存访问的局部性以提高性能。

优化操作系统配置时需要注意哪些设置?

需要验证性能模式、禁用irqbalance、禁用透明大页、关闭防火墙和调整资源限制。

如何调整数据库参数以提升GBase 8c性能?

关键参数包括work_mem、maintenance_work_mem、max_process_memory和shared_buffers,需根据实际情况进行调整。

在性能测试中,CPU使用率应该保持在什么水平?

CPU使用率应保持在95%以上,以确保性能最大化。

为什么要禁用透明大页(THP)?

禁用透明大页可以避免内存碎片化和潜在的性能问题。

🏷️

标签

➡️

继续阅读