VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

内存

通过top命令查看Vastbase节点内存使用情况,分析是否存在由于内存占用率过高导致的性能瓶颈。

查看内存状况

查询服务器内存的使用情况主要通过以下方式:

执行top命令,查看内存占用情况。执行该命令后,按Shift+M键,可按照内存大小排序。

top

返回结果如下所示:

top - 11:38:26 up 2 days, 17:59, 10 users,  load average: 0.01, 0.05, 0.15
Tasks: 685 total,   1 running, 684 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.2 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 19740646+total, 23503420 free, 15947100 used, 15795595+buff/cache
KiB Swap:  8242172 total,  8242172 free,        0 used. 13366219+avail Mem

  PID USER PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
29838 vastbase  20   0 1373104 456904 175248 S   3.6  0.2  98:53.16 gaussdb
27789 vastbase  20   0  150732   4136   3216 S   0.0  0.0   0:00.00 vsql
45659 vastbase  20   0  117164   4052   1860 S   0.0  0.0   0:00.24 bash
 8087 vastbase  20   0  117164   4000   1848 S   0.0  0.0   0:00.05 bash
27459 vastbase  20   0  117160   4000   1848 S   0.0  0.0   0:00.04 bash
33619 vastbase  20   0  117120   3852   1740 S   0.0  0.0   0:00.04 bash
27282 vastbase  20   0  117120   3840   1728 S   0.0  0.0   0:00.03 bash
 9923 vastbase  20   0  158064   2932   1612 R   0.3  0.0   0:00.04 top

分析时,请主要关注Vastbase进程占用的内存百分比(%MEM)和操作系统的剩余内存。

显示信息中的主要属性解释如下:

  • total:物理内存总量。
  • used:已使用的物理内存总量。
  • free:空闲内存总量。
  • buffers:进程使用的虚拟内存总量。
  • %MEM:进程占用的内存百分比。
  • VIRT:进程使用的虚拟内存总量,VIRT=SWAP+RES。
  • SWAP:进程使用的虚拟内存中已被换出到交换分区的量。
  • RES:进程使用的虚拟内存中未被换出的量。
  • SHR:共享内存大小。

性能参数分析

1、 以root用户执行free命令查看cache的占用情况。

free

查询结果如下所示:

              total        used        free      shared  buff/cache   available
Mem:        3880500      514408      115040     1154180     3251052     1943896
Swap:       2097148       25136     2072012

2、 若cache占用过高,请执行如下命令开启自动清除缓存功能。

sh Vastbase-server/src/bin/scripts/run_drop_cache.sh

其中,Vastbase-server为仓库代码,下载地址https://gitee.com/opengauss/openGauss-server.git

3、 若用户内存占用过高,需查看执行计划,重点分析是否有不合理的join顺序。

例如,多表关联时,执行计划中优先关联的两表的中间结果集比较大,导致最终执行代价比较大。