当前位置: 首页 > news >正文

Koordinator-NodeInfoCollector

Run

每秒执行一次

func (n *nodeInfoCollector) Run(stopCh <-chan struct{}) {go wait.Until(n.collectNodeInfo, n.collectInterval, stopCh)
}

collectNodeInfo()

  • 采集node cpu信息
  • 采集node numa信息
func (n *nodeInfoCollector) collectNodeInfo() {started := time.Now()err := n.collectNodeCPUInfo()if err != nil {klog.Warningf("failed to collect node CPU info, err: %s", err)return}err = n.collectNodeNUMAInfo()if err != nil {klog.Warningf("failed to collect node NUMA info, err: %s", err)return}n.started.Store(true)klog.V(4).Infof("collect node info finished, elapsed %s", time.Since(started).String())
}

collectNodeCPUInfo()

  • 采集和组装NodeCpuInfo对象
  • 缓存到key为node_cpu_info
  • 记录到metric,collect_node_cpu_info_status:status=successed
func (n *nodeInfoCollector) collectNodeCPUInfo() error {klog.V(6).Info("start collect node cpu info")localCPUInfo, err := koordletutil.GetLocalCPUInfo()if err != nil {metrics.RecordCollectNodeCPUInfoStatus(err)return err}nodeCPUInfo := &metriccache.NodeCPUInfo{BasicInfo:      localCPUInfo.BasicInfo,ProcessorInfos: localCPUInfo.ProcessorInfos,TotalInfo:      localCPUInfo.TotalInfo,}klog.V(6).Infof("collect cpu info finished, info: %+v", nodeCPUInfo)n.storage.Set(metriccache.NodeCPUInfoKey, nodeCPUInfo)klog.V(4).Infof("collectNodeCPUInfo finished, processors num %v", len(nodeCPUInfo.ProcessorInfos))metrics.RecordCollectNodeCPUInfoStatus(nil)return nil
}

GetLocalCPUInfo()

命令lscpu -e=CPU,NODE,SOCKET,CORE,CACHE,ONLINE

CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE
0   0    0      0    0:0:0:0       是
1   0    0      0    0:0:0:0       是

组装信息:

LocalCPUInfo{"basicInfo":{"hyperThreadEnabled":true,"catL3CbmMask":"","vendorID":"GenuineIntel",},"processorInfos":[{"cpu":0,"core":0,		"socket":0,		"node":0,		"l1dl1il2":"0:0:0",		"l3":0,		"online":"是"},{"cpu":1,"core":0,		"socket":0,		"node":0,		&#

http://www.mrgr.cn/news/97142.html

相关文章:

  • 优选算法的妙思之流:分治——快排专题
  • Leetcode 169 -- 分治 | 摩尔投票法
  • Tradingview 策略分享 - SSL 混合和 CE 交易策略
  • MySQL学习笔记(一)——MySQL下载安装配置
  • C语言:数据的存储
  • 01背包问题:详细解释为什么重量维度必须从大到小遍历。
  • 消息队列之-Kafka
  • AI 数理逻辑基础之统计学基本原理(上)
  • Leetcode 127 -- 哈希表
  • 【嵌入式-stm32电位器控制以及旋转编码器控制LED亮暗】
  • WSL使用经验
  • 第三季:挪威
  • RocketMQ 中的 ProducerManager 组件剖析
  • Leetcode 857 -- 贪心 | 数学
  • OrangePi5Plus开发板不能正确识别USB 3.0 设备 (绿联HUB和Camera)
  • 指令补充+样式绑定+计算属性+监听器
  • 在 Android Studio 中运行安卓应用到 MuMu 模拟器
  • Leetcode 33 -- 二分查找 | 归约思想
  • PyTorch中的Flatten
  • windows如何安装wkhtmltoimage 给PHP使用根据HTML生成图片