基于TPC-C测试的GBase 8c性能优化
内容提要
为优化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)?
禁用透明大页可以避免内存碎片化和潜在的性能问题。