CPU nanocore转核心数及Linux CPU使用率计算公式是否正确?
nanocore单位换算与CPU使用率计算结论
1. nanocore转core的换算正确性
你当前使用的nanocore到core的换算公式完全正确。
nanocore是云原生监控场景中通用的CPU计量单位,其中nano(纳)对应10^-9的度量量级,1 nanocore代表1个CPU核心算力的10亿分之一,固定换算关系为:1 core = 1000000000 nanocore
因此核心数换算公式就是你所使用的:core = nanocore / 1000000000
举个实际例子:3500000000 nanocore换算后就是3.5个CPU核心的算力占用。
2. 10核场景下CPU使用率百分比公式正确性
你拟定的10核机器CPU使用率计算公式逻辑完全成立。
这个公式的计算逻辑本质是三步:
- 先将nanocore值转换为实际占用的核心数
- 计算占用核心数占整机总核心数(10核)的比例
- 将比例值乘以100转换为百分比格式
完整公式和你写的一致:cpu_usage_percent = (nanocore / 1000000000) / 10 * 100
这个公式可以做常数项简化,10核场景下等价于:cpu_usage_percent = nanocore / 10000000
注意事项
使用该公式时需要确认你拿到的nanocore指标口径:如果是整机、进程、容器的实际CPU使用量统计值(比如Kubernetes监控中CPU使用指标换算出的nanocore值、Linux进程统计的CPU累加占用值),计算结果是准确的,和top、mpstat等系统工具输出的CPU使用率口径对齐。比如10核机器上某服务占满2个核心,对应nanocore值为2000000000,代入公式计算得到20%的CPU使用率,和系统工具显示结果一致。
内容的提问来源于stack exchange,提问作者Đặng Lực
相关产品推荐
相关产品推荐

