暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB A 硬件瓶颈——内存

墨天轮 2019-10-12
899

内存

通过top命令或Database Manager工具查看集群内各节点内存使用情况,分析是否存在由于内存占用率过高导致的性能瓶颈。

查看内存状况

查询服务器内存的使用情况主要有以下两种方式:

  • 在所有存储节点,逐一使用root用户执行top命令,查看内存占用情况。执行该命令后,按“Shift+M”键,可按照内存大小排序。
    top - 11:27:04 up 23 days, 1:15, 4 users, load average: 1.43, 0.53, 0.56 Tasks: 437 total, 2 running, 435 sleeping, 0 stopped, 0 zombie Cpu(s): 16.6%us, 2.2%sy, 0.0%ni, 80.7%id, 0.0%wa, 0.0%hi, 0.4%si, 0.0%st Mem: 96717M total, 23777M used, 72940M free, 69M buffers Swap: 16394M total, 9M used, 16385M free, 18177M cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1496 omm 20 0 9.9g 1.6g 1.3g S 177 1.7 0:49.57 gaussdb 1490 omm 20 0 9.9g 1.6g 1.3g S 140 1.7 0:43.88 gaussdb 1493 omm 20 0 9.9g 1.6g 1.3g S 123 1.7 0:42.77 gaussdb 1499 omm 20 0 9.9g 1.6g 1.3g S 120 1.7 0:42.77 gaussdb 2111 omm 20 0 9917m 1.5g 1.3g S 0 1.6 0:01.95 gaussdb 2115 omm 20 0 9917m 1.5g 1.3g S 0 1.6 0:01.91 gaussdb 2123 omm 20 0 9917m 1.5g 1.3g S 0 1.6 0:01.91 gaussdb 2119 omm 20 0 9917m 1.5g 1.3g S 0 1.6 0:01.91 gaussdb 1508 omm 20 0 1527m 1.3g 1.0g S 0 1.4 0:02.36 gaussdb 1502 omm 20 0 1527m 1.3g 1.0g S 0 1.4 0:02.12 gaussdb 1505 omm 20 0 1527m 1.3g 1.0g S 0 1.4 0:02.29 gaussdb 1511 omm 20 0 1527m 1.3g 1.0g S 0 1.4 0:02.23 gaussdb 1487 omm 20 0 2499m 1.3g 1.1g S 0 1.4 0:01.95 gaussdb

    分析时,请主要关注每个进程占用的内存百分比(%MEM)、整系统的剩余内存。

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

    • total:物理内存总量。
    • used:已使用的物理内存总量。
    • free:空闲内存总量。
    • buffers:进程使用的虚拟内存总量。
    • %MEM:进程占用的内存百分比。
    • VIRT:进程使用的虚拟内存总量,VIRT=SWAP+RES。
    • SWAP:进程使用的虚拟内存中已被换出到交换分区的量。
    • RES:进程使用的虚拟内存中未被换出的量。
    • SHR:共享内存大小。
  • Database Manager工具支持对集群或者单个节点进行监控。

    在“集群资源监控”页面上专门有对内存使用情况监控的界面。

性能参数分析

  • 以root用户执行“free”命令查看cache的占用情况。

    free

    查询结果如下所示:

    total used free shared buffers cached Mem: 8038844 6336184 1702660 0 375896 2880912 -/+ buffers/cache: 3079376 4959468 Swap: 4192924 0 4192924

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

    ${BIGDATA_HOME}/FusionInsight_MPPDB_6.5.1/install/FusionInsight-MPPDB-6.5.1/package/MPPDB/sudo/run_drop_cache.sh

  • 若用户内存占用过高,需查看执行计划,重点分析以下内容。

    • 是否完全下推。
    • 是否存在对数据量大的表执行broadcast。
    • 是否有不合理的join顺序。例如,多表关联时,执行计划中优先关联的两表的中间结果集比较大,导致最终执行代价比较大。


查看更多:华为GaussDB 200 硬件瓶颈点分析
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论