PostgreSQL开源数据库服务器最近经历了一系列令人兴奋的变化,比如PostgreSQL 18合并IO_uring支持、AVX-512加速CRC32计算,可提升高达3倍的性能。
近日,PostgreSQL合并了针对非一致性内存访问感知能力(NUMA Awareness )的初步支持,用于提升多节点/套接字服务器的PostgreSQL性能。
commit 详情
在PostgreSQL 18.0发布(预计9月)之前,合并到PostgreSQL Git中的是基本的NUMA Awareness。如果使用"--with-libnuma"配置选项构建,目前只提供了Linux版本。其他操作系统的NUMA Awareness将在后续添加。
这项工作是基于去年由微软工程师Andres Freund在PGConf EU演讲中提出的。对于多插槽服务器尤其如此,这种NUMA感知能力能够帮助降低延迟,还可以帮助在更靠近PCIe连接的存储的NUMA节点上执行数据库I/O,或者更好地处理CXL内存周围的问题。
在为PostgreSQL添加基本的NUMA意识之后,针对pg_shmem_allocations_numa和pg_buffercache_numa的一些后续工作也已经落地,这些工作提供了关于共享内存如何在NUMA节点之间分配的信息,以及单个缓冲区信息在NUMA内存节点上的分布情况。