CPU NUMA
化给服务器带来澎湃算力的同时,也给软件开发带来了很大挑战。从整个
IT
软件栈来看,首先需要对
NUMA
化进行支持的是操作系统,现在通用的企业操作系统是
Linux
操作系统。在
NUMA
出现后,
Linux
也提供了针对性的优化方案,优先尝试在请求线程当前所
处的
CPU
的
Local
内存上分配空间。如果
local
内存不足,优先淘汰
local
内存中无用的
Page
。但
Linux
提供的
NUMA
内存使用方式并不适合数据库,因为数据库是一个数据密集型
高并发的应用,内部有很多的内核数据结构,这些数据结构既会被本核的
CPU
访问,也会被远
程的
CPU
核访问。为了提高数据访问性能,数据库还有自己的共享数据缓冲区,这些共享缓冲
区是随机的被各个
CPU
核上的业务线程访问。从
IT
软件栈来看,数据库是处于企业应用的核
心位置,很多应用后台都有一个数据库,数据库的性能决定了很多应用的整体吞吐量。因此如
果数据库无法在
NUMA
下发挥最大性能,实现随着核数的增加,性能呈现一定的线性比,那么
CPU NUMA
虽然算力很丰富,但可能没有企业愿意买单。
反过来,
NUMA
作为
CPU
发展的一种必然趋势,一款企业级的数据库如果不能适应硬件
的 发展,在企业的数据库选型中,这款数据库也将被淘汰出局。
openGauss
作为一款开源关系型数据库管理系统,针对
CPU NUMA
化的硬件发展趋势,
从并发控制算法,内核数据结构,数据访问等全方位进行了优化,释放处理器多核算力,实现
两路鲲鹏
128
核场景
150
万
tpmC
性能。本文深度解读
openGauss
在鲲鹏服务器上的
NUMA
多核优化技术,同时也为其他数据库在鲲鹏上进行性能优化提供借鉴和参考,面向数据
库性能优化的数据库开发人员。
1 openGauss
鲲鹏多核优化解读
评论