文档首页/ MapReduce服务 MRS/ 用户指南/ MRS集群运维/ MRS集群告警处理参考/ ALM-43012 JDBCServer2x进程直接内存使用超出阈值
更新时间:2024-09-05 GMT+08:00

ALM-43012 JDBCServer2x进程直接内存使用超出阈值

告警解释

系统每30秒周期性检测JDBCServer2x进程直接内存使用状态,当检测到JDBCServer2x进程直接内存使用率超出阈值(最大内存的95%)时产生该告警。

MRS 3.3.0-LTS及之后的版本中,Spark2x服务改名为Spark,服务包含的角色名也有差异,例如JDBCServer2x变更为JDBCServer。相关涉及服务名称、角色名称的描述和操作请以实际版本为准。

告警属性

告警ID

告警级别

是否自动清除

43012

重要

告警参数

参数名称

参数含义

来源

产生告警的集群名称。

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

主机名

产生告警的主机名。

Trigger Condition

系统当前指标取值满足自定义的告警设置条件。

对系统的影响

JDBCServer2x进程直接内存使用率过高,会影响JDBCServer2x进程运行的性能,甚至造成内存溢出导致JDBCServer2x进程不可用,Spark JDBC任务执行变慢或失败。

可能原因

该节点JDBCServer2x进程直接内存使用率过大,或配置的直接内存不合理,导致使用率超过阈值。

处理步骤

检查直接内存使用率

  1. 在FusionInsight Manager首页,选择“运维 > 告警 > 告警”,选中“ID”为“43012”的告警,查看“定位信息”中的角色名以及确认主机名所在的IP地址。
  2. 在FusionInsight Manager首页,选择“集群 > 服务 > Spark2x > 实例”,单击告警上报的JDBCServer2x,进入实例“概览”页面,单击图表区域右上角的下拉菜单,选择“定制 > JDBCServer2x内存使用率统计”,单击“确定”,查看JDBCServer2x进程使用的直接内存是否已达到JDBCServer2x进程设定的最大直接内存的阈值。

    • 是,执行3
    • 否,执行7
    图1 JDBCServer2x内存使用率统计

  3. 在FusionInsight Manager首页,选择“集群 > 服务 > Spark2x > 实例”,单击告警上报的JDBCServer2x,进入实例“概览”页面,单击图表区域右上角的下拉菜单,选择“定制 > JDBCServer2x直接内存” ,单击“确定”,根据告警产生时间,查看对应时间段的“JDBCServer2x进程使用的直接内存”的值,获取最大值。

    图2 JDBCServer2x直接内存

  4. 在FusionInsight Manager首页,选择“集群 > 服务 > Spark2x > 配置”,单击“全部配置”,选择“JDBCServer2x > 性能”,“spark.driver.extraJavaOptions”参数中-XX:MaxDirectMemorySize的默认值为512M,可根据如下方案调整:告警时间段内JDBCServer2x使用的直接内存的最大值和“JDBCServer2x直接内存使用率统计 (JDBCServer2x)”阈值的比值。若参数值调整后,仍偶现告警,可以按0.5倍速率调大。若频繁出现告警,可以按1倍速率调大。建议不要超过“SPARK_DRIVER_MEMORY”的参数值。多业务量、高并发的情况可以考虑增加实例。

    在FusionInsight Manager首页,选择“运维 > 告警 > 阈值设置 > Spark2x > 内存 > JDBCServer2x直接内存使用率统计 (JDBCServer2x)”,可查看“阈值”。

  5. 重启所有的JDBCServer2x实例。

    重启实例期间实例不可用,当前实例节点的任务会执行失败。

  6. 等待10分钟,观察界面告警是否清除。

    • 是,处理完毕。
    • 否,执行7

收集故障信息

  1. 在FusionInsight Manager界面,选择“运维 > 日志 > 下载”。
  2. 在“服务”中勾选待操作集群的“Spark2x”。
  3. 单击右上角的设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后10分钟,单击“下载”。
  4. 请联系运维人员,并发送已收集的故障日志信息。

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

无。