更新时间:2022-06-13 GMT+08:00

内存管理概述

概述

内存是GaussDB(DWS)运行的一个关键资源,如果能够有效利用,可以提升业务查询性能。

而资源池是GaussDB(DWS)管理系统资源的集合,负责分配和管理运行在资源池中任务资源。

主机内存

在一台GaussDB(DWS)节点上,主机可用内存资源被所有正在运行的进程共享,包括操作系统进程、GaussDB(DWS)实例进程、其他应用程序进程。管理员必须监控GaussDB(DWS)和非GaussDB(DWS)进程之间的内存共享情况。

图1 GaussDB(DWS)主机内存使用示意图
  • Host memory表示服务器可用的所有内存,这里仅包括服务器的物理内存RAM(在LINUX操作系统中,Host memory还包括交换分区Swap,因为GaussDB(DWS)使用的是精确内存管理方式,所以这里Host memory仅包括物理内存RAM)。物理内存RAM被GaussDB(DWS)进程和其他所有运行在这台主机上的进程共享。有些程序会占用大量资源,可以通过调整每个节点上的DN数量或者增加物理内存等方式解决。
  • 如果该节点上部署有CN的话,CN和DN共享GaussDB(DWS)所占用内存。
  • 在每一个DN中,资源池共享DN所占用的内存。
  • 资源池内运行的并发SQL语句(图中标识为方块)共享资源池所占用的内存资源。
  • 查询优化器生成一个执行计划,包含一系列任务(又称为算子,图中标识为operators)。任务算子例如表扫描、join或处理一些数据记录产生一个中间结果集。一个查询中的所有算子共享该查询语句占用的内存。

配置主机内存

主机内存是一台服务器上被所有程序共享的所有内存,可以通过添加更多RAM到服务器节点上以增加物理内存。

物理内存和操作系统配置通常由系统管理员来管理。