• GBASE 8A v953报错集锦60--在线扩容过程中使用 swap 导致业务性能下降


    问题现象
    8611 在线扩容时,后台作业并发较高时,集群节点出现使用 swap 现象,导致
    SQL 执行性能下降。
    原因分析
    在后台进行日常业务作业情况下进行在线扩容,后台本身业务压力就比较大,加上
    在线扩容,总业务量超出了系统承受范围。
    解决方法
    当日现场调低并发压力,并将复制表改为分布表,重新进行在线扩容未见 swap
    题出现。
    建议在线扩容控制后台业务压力,否则与扩容业务争抢资源严重,哪一个都跑不快。
    代码中添加了一个控制参数:
    _gbase_rep_pending_memory_size
    此参数代表接收端接收缓存的上限,以 MB 为单位,这个值设得越大,则接收
    端的压力越大,反之则发送端的压力越大,因此需要找到一个中间值,使发送
    端和接收端的压力比较均衡,才能使效率更高。当前经验值是设为物理内存的
    10%
    参数 _gbase_rep_receive_buffer_size 只有通过修改 node 层的配置文件才可生
    , set set global 会报错,如下:
    Variable '_gbase_rep_receive_buffer_size' is a read only variable
    _gbase_rep_receive_buffer_size 默认设置为 20G , 最小可设置为 5G, 无上限 ,
    默认单位为 MB
    查看 _gbase_rep_receive_buffer_size 参数是否能控制内存占用情况,执行如下
    命令:
    gncli -uroot -e "show engine express status \G;" |egrep -i "total|reptask|applic
    ation"
    每隔 2s 记录一次 , 查看 total weight 大小, Total weight 单位为字节。
    优化了节点间数据传输的负载均衡的控制,能更好地避免出现使用 SWAP 的问题,
    但是压力过大的情况下此问题还是会出现,因此还需要通过调整集群下发 SQL
    并发数来彻底避免此问题。
  • 相关阅读:
    centOS7管理开放防火墙端口
    大型医院HIS系统源码 优质源码 医院管理系统源码
    算法进修Day-34
    面向对象的原型:prototype,原型链
    centos7安装mysql5.7
    详解API接口如何安全的传输数据
    django理解02 前后端分离中的问题
    C++ 多线程编程系列一:线程管理(std::thread 对象、join、detach、传参、不可拷贝性、所有权转移)
    有关海盗王版本的那些说明
    MySQL 多表查询
  • 原文地址:https://blog.csdn.net/ls_hong/article/details/127610355