You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

apache-ignite-2.8.1日志上报CPU负载显示异常问题咨询

问题背景
[2021-10-12 21:04:01,936][INFO ][grid-timeout-worker-#23][IgniteKernal]
Metrics for local node (to disable set 'metricsLogFrequency' to 0)
Node [id=ec867e26, uptime=7 days, 14:00:43.668]
H/N/C [hosts=8, nodes=60, CPUs=112]
CPU [cur=100%, avg=5.69%, GC=118.3%]
PageMemory [pages=862676]
Heap [used=13339MB, free=6.95%, comm=14336MB]
Off-heap [used=3389MB, free=67.53%, comm=3560MB]
sysMemPlc region [used=0MB, free=99.21%, comm=40MB]
TxLog region [used=0MB, free=100%, comm=40MB]
Default_Region region [used=3388MB, free=66.91%, comm=3480MB]
Outbound messages queue [size=146435]
Public thread pool [active=0, idle=0, qSize=0]
System thread pool [active=1, idle=7, qSize=0]
Ignite CPU使用率相关指标说明

Ignite存在内置的CPU使用率相关指标,日志中打印的CPU [cur=100%, avg=5.69%, GC=118.3%]就是官方内置的指标输出,各字段含义如下:

  • cur:最近一个采样周期内Ignite进程的CPU使用率,统计维度是Ignite进程可用CPU核心的占用比例,不是服务器整机CPU占比
  • avg:节点启动以来的平均CPU使用率
  • GC:GC线程消耗的CPU占比,超过100%说明多个GC线程同时在运行
    除了日志输出,还可以通过JMX接口、Ignite REST API、SYS.NODE_METRICS系统视图查询对应的CPU指标,对应字段为CPU_CURRENT、CPU_AVERAGE。
异常排查方案
  • 核对CPU统计维度差异:首先确认Ignite日志中H/N/C字段的CPUs值(当前案例为112),是否和进程实际可用的CPU核数一致。如果Ignite进程被cgroup限制、或者绑定了CPU亲和性,实际可用核数远小于112,那么进程打满所有可用核时,Ignite统计的进程CPU使用率为100%,但整机CPU占比为(可用核数/整机核数),就会出现整机只有25%的情况,和案例现象完全匹配。
  • 排查GC异常:日志中显示堆内存剩余仅6.95%,同时GC占比高达118.3%,说明当前节点处于频繁GC状态。GC线程会优先占满分配给进程的所有CPU核心,会直接导致进程CPU使用率打满,建议优先排查堆内存占用过高的原因,是否存在内存泄漏、大查询、数据量超过堆内存配置的问题。
  • 核对系统工具的统计逻辑:使用top命令查看进程CPU时,默认显示的是单核心占比,比如进程被分配28核,top中进程CPU显示2800%才代表打满所有可用核,按1可以查看每个物理核心的使用率,确认是否分配给Ignite的核心已经全部打满,其余核心处于空闲状态,导致整机平均使用率偏低。
  • 检查容器部署配置:如果是Docker/K8s等容器化部署,需要确认JVM版本是否支持cgroup资源感知,旧版本JVM默认会读取宿主机的CPU核数,而非容器分配的核数,会导致Ignite统计CPU使用率的基准错误。
  • 排查版本bug:如果上述配置均无问题,可以排查当前使用的Ignite版本是否存在已知的CPU采样统计bug,升级到最新稳定版验证问题是否复现。

内容的提问来源于stack exchange,提问作者Rajesh R Nair - BHI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:39:01