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

cpu性能统计

cpu负载

top中avg,/proc/loadavg, 包括cpu密集型任务+io型任务

统计流程
每cpu
scheduler_tick
----calc_global_load_tick : 当前瞬时 cpu::this_rq:: nr_running+nr_inunterrupt->calc_load_tasks(全局变量)
全局
do_timer
----calc_global_load:瞬时calc_load_tasks 分别加权做移动平均->avenrun[3](分别为5分、10分、15分)

cpu利用率

top中 us,sy,ni,id,wa,hi,si,st ; /proc/stat , /proc/$pid/stat
用户空间: us+ni(user+nice)
内核空间: sy+hi+si(sys+irq+softirq)
idle: id+wa(idle+iowait)

统计流程
per_cpu变量 kernel_cpustat: cpustat[]
update_process_timers(每cpu tick, 常见1ms采样,1ms时间统一归入cpustat[所选统计项])
----accuount_process_tick
--------account_user_time(用户态  统计项=user或nice)
------------task_group_account_field (该采样时间计入cpustat[统计项])
--------account_system_time (中断或者kernel,统计项=irq或softirq或system)
------------account_system_index_time
----------------task_group_account_field (该采样时间计入cpustat[统计项])
--------account_ider_time(idle,统计项=idle或iowait,该采样时间计入cpustat[统计项])

perf统计

内建perf命令
硬事件:
周期数、指令数、cache-miss、分支预测失败等 ->cpu性能计数器(硬件寄存器)
软事件:
软件统计缺页中断、上下文切换、cpu迁移->kernel变量
关键指标CPI/IPC, 周期数每指令(求低)/指令数每周期(求高),彼此互为倒数,本质如一
低CPI优化:
1. 高频cpu、内存
2. 大cpu cache
3. 局部性代码,提高cache命中
4. cpu绑定限制,缓解cpu迁移导致cache失效

http://www.xdnf.cn/news/148159.html

相关文章:

  • 网络犯罪全球化,数字时代的跨国诈骗危机
  • Linux——线程(1)线程概念与控制
  • 12.thinkphp验证
  • 粒子群优化算法(Particle Swarm Optimization, PSO)的详细解读
  • PR第二课--混剪
  • 嵌入式通信技术实践与教学创新:从蓝牙协议到虚实融合的实验革命
  • 【Nacos-安全与限流机制健全06 】
  • 第19章:Multi-Agent多智能体系统介绍
  • C/C++时间函数详解及使用场景
  • 找出字符串中第一个匹配项的下标
  • 关于hbaseRegion和hbaseRowKey的一些处理
  • 在 Ubuntu 22.04|20.04|18.04 上安装 PostgreSQL 13
  • 4/24杂想
  • 慧星云荣登杭州AI卧龙图
  • windows安装jax和jaxlib的教程(cuda)成功安装
  • C++进阶----多态
  • 这些项目可以在以后年度结转扣除!
  • 从 0 开始认识 WebSocket:前端实时通信的利器!
  • 腾讯云系统盘占满
  • Node.js 应用场景
  • AIGC实战之如何构建出更好的大模型RAG系统
  • B站C语言课程笔记2
  • SD-WAN:企业网络架构的智能化革命
  • 蓝牙GATT协议
  • OAuth2AuthorizationEndpointFilter类介绍、应用场景和示例代码
  • 【北京迅为】iTOP-4412精英版使用手册-第二章 开发板初体验
  • 非序列实现MEMS聚焦功能
  • 【软件设计师】模拟题三
  • 如何将 Apache Hudi 接入 Ambari?完整部署与验证指南
  • 《深入理解计算机系统》阅读笔记之第十一章 网络编程