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

如何解析Yarn日志获取vcores与内存等性能指标?

我来帮你搞定这个问题——从庞大的Yarn日志里提取vcores和内存的使用数据其实有几个实用的方法,不用手动翻那堆日志:

方法1:用grep快速过滤核心日志行

既然你已经把日志导出到myYarnLog.txt,直接用grep定位你需要的关键词就行,精准筛选出和资源分配相关的行:

  • 提取内存相关记录(对应你提到的Aggregate Resource Allocation和RAM memory):
    grep -i "Aggregate Resource Allocation\|RAM memory" myYarnLog.txt
    
  • 提取vcores虚拟CPU的分配统计:
    grep -i "vcores\|virtual CPU\|CPU allocation" myYarnLog.txt
    
    这些命令会直接把所有包含目标关键词的行筛出来,跳过无关的日志内容。

方法2:用awk解析并计算性能指标

如果不只是想看原始记录,还需要计算统计指标(比如最大/平均内存、vcores使用量),awk是绝佳工具,能帮你自动提取数值并做计算:

统计内存使用情况

假设日志行的格式类似Aggregate Resource Allocation: 1024 MB,可以用下面的命令提取数值并算出总、最大、平均内存:

grep "Aggregate Resource Allocation" myYarnLog.txt | awk '{print $NF}' | awk -F'MB' '{sum+=$1; max=($1>max)?$1:max} END {print "总内存分配: " sum " MB"; print "最大内存分配: " max " MB"; print "平均内存分配: " sum/NR " MB"}'

简单解释:先筛出目标行,提取最后一个字段(内存数值),然后累加求和、记录最大值,最后输出统计结果。

统计vcores分配情况

如果vcores的日志行格式是vcores allocated: 4,用类似的逻辑可以算出vcores的总分配量、最大/最小值和平均值:

grep "vcores allocated" myYarnLog.txt | awk '{print $NF}' | awk '{sum+=$1; max=($1>max)?$1:max; min=($1<min||NR==1)?$1:min} END {print "总vcores分配: " sum; print "最大vcores分配: " max; print "最小vcores分配: " min; print "平均vcores分配: " sum/NR}'

这个结果能帮你直观分析并行任务的CPU资源使用情况。

方法3:处理结构化日志片段(如果适用)

有些Yarn日志会包含JSON格式的资源元数据,如果你的日志里有这类内容,可以用jq工具(需要提前安装)来解析,输出更规整的结果:
比如找到包含resourceAllocation的JSON行,提取内存和vcores:

grep -o '{"resourceAllocation":.*}' myYarnLog.txt | jq '.resourceAllocation | {memory: .memory, vcores: .vcores}'

这个命令会直接输出格式化的键值对,看起来非常清晰。

小提示

如果日志里的关键词和我假设的不一样,可以先用grep -n "RAM\|vcores" myYarnLog.txt查看几行实际的日志格式,再调整grep和awk的匹配规则——毕竟不同Yarn版本的日志格式可能略有差异。

内容的提问来源于stack exchange,提问作者Peter Krauss

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 16:59:12