searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

浅谈CPU性能指标

2024-09-27 09:20:48
27
0

1. CPU相关的性能指标是linux各种性能指标中最核心的指标之一。

image.png
image.png

条目 来源命令 标识名称 英文释义 中文翻译 用途 具体含义
1 top %Cpu CPU state percentages CPU 状态百分比 整机级别 us,sy,ni,id,wa,hi,si,st分别代表各状态的百分比。
2 top %CPU CPU Usage CPU使用率 进程级别 默认代表过去3秒内的进程CPU消耗时间片与自然时长比。
3 ps %CPU cpu utilization CPU使用率 进程级别 自进程启动CPU消耗时间片与自然时长比,与top值不同。

1.1 CPU指标含义解读。

  • Linux ps命令计算%CPU的方法,是范围指标。
  • 更改top命令的默认刷新时间: 按d健 输入0.1
  • 8个CPU状态百分比之和永远等于100。

2. CPU状态指标详解

Top命令的CPU状态百分比指标一共8个,这8个指标都是缩写,对应的全称和含义如下:

缩写 全称 含义说明
us user 消耗在用户态的CPU资源
guest 宿主机环境中,通过虚拟化运行虚拟机的时间,包含在user内。
guest_nice 宿主机环境中,以低优先级运行虚拟机的时间,包含在user内。
sy system 消耗在内核态的CPU资源
ni nice 低nice优先级的进程消耗在用户态的CPU资源
id idle 空闲状态的CPU资源
wa iowait 等待io完成时消耗的CPU资源
hi irq 完成硬中断消耗的CPU资源
si softirq 完成软中断消耗的CPU资源
st steal 虚拟机环境中,被其他虚拟机或宿主机占用的CPU资源

image.png

3. CPU状态百分比和CPU使用率的关系

  • top命令的us值会平稳维持在75.2左右。tsar2的23:25时间的user值75.60,这说明23:24分到23:25分这60秒内的CPU状态百分比中user的平均值是75.60。这两个值75.2和75.60基本一致,都说明在4核中使用了3个核。
  • ssar --cpu视图在23:25时间的user值是301.35。这说明23:24分到23:25分这60秒内的CPU状态绝对值中user的平均值是301.35。也说明4核中使用了3个核。
  • ssar的procs子命令,在23:25时刻的3个stress进程pcpu分别是100.0。 这说明23:24分到23:25分这60秒内的每个stress进程的CPU使用率都是100。
  • 因此,但我们发现整机CPU状态百分比是75%时,我们可以通过ssar procs子命令将整机CPU状态绝对值301.35拆分到进程级CPU使用率,即301.25 ≈ 100 + 100 + 100。从而可以在整机user类型的CPU状态异常偏高时,精准定位到进程级因素。
  • 逻辑关系:CPU状态百分比 => CPU状态绝对值 => CPU使用率
  • image.png

4. linux系统的调度优先级

Linux的6种线程调度类型:

线程类型 类型值 类型常量 备注
TS 0 SCHED_NORMAL 分时调度线程
FF 1 SCHED_FIFO FIFO先进先出实时调度线程
RR 2 SCHED_RR 循环实时调度线程
B 3 SCHED_BATCH 批处理线程
IDL 5 SCHED_IDLE 惰性线程
DLN 6 SCHED_DEADLINE 限期调度线程,自Linux 3.14起

Linux引入这么多线程类型的主要目的是区别各个类型获取CPU资源的能力。这6类线程调度类型中,DLN属于最高优先级调度类型。FF和RR属于实时线程,优先级次高,接受实时优先级控制,取值范围是1到99。B和TS类型居于中间,接受nice值控制,其中TS类型取值范围是-20到+19,默认值是0。IDL类型优先级最低。

0条评论
0 / 1000
c****x
3文章数
0粉丝数
c****x
3 文章 | 0 粉丝
c****x
3文章数
0粉丝数
c****x
3 文章 | 0 粉丝
原创

浅谈CPU性能指标

2024-09-27 09:20:48
27
0

1. CPU相关的性能指标是linux各种性能指标中最核心的指标之一。

image.png
image.png

条目 来源命令 标识名称 英文释义 中文翻译 用途 具体含义
1 top %Cpu CPU state percentages CPU 状态百分比 整机级别 us,sy,ni,id,wa,hi,si,st分别代表各状态的百分比。
2 top %CPU CPU Usage CPU使用率 进程级别 默认代表过去3秒内的进程CPU消耗时间片与自然时长比。
3 ps %CPU cpu utilization CPU使用率 进程级别 自进程启动CPU消耗时间片与自然时长比,与top值不同。

1.1 CPU指标含义解读。

  • Linux ps命令计算%CPU的方法,是范围指标。
  • 更改top命令的默认刷新时间: 按d健 输入0.1
  • 8个CPU状态百分比之和永远等于100。

2. CPU状态指标详解

Top命令的CPU状态百分比指标一共8个,这8个指标都是缩写,对应的全称和含义如下:

缩写 全称 含义说明
us user 消耗在用户态的CPU资源
guest 宿主机环境中,通过虚拟化运行虚拟机的时间,包含在user内。
guest_nice 宿主机环境中,以低优先级运行虚拟机的时间,包含在user内。
sy system 消耗在内核态的CPU资源
ni nice 低nice优先级的进程消耗在用户态的CPU资源
id idle 空闲状态的CPU资源
wa iowait 等待io完成时消耗的CPU资源
hi irq 完成硬中断消耗的CPU资源
si softirq 完成软中断消耗的CPU资源
st steal 虚拟机环境中,被其他虚拟机或宿主机占用的CPU资源

image.png

3. CPU状态百分比和CPU使用率的关系

  • top命令的us值会平稳维持在75.2左右。tsar2的23:25时间的user值75.60,这说明23:24分到23:25分这60秒内的CPU状态百分比中user的平均值是75.60。这两个值75.2和75.60基本一致,都说明在4核中使用了3个核。
  • ssar --cpu视图在23:25时间的user值是301.35。这说明23:24分到23:25分这60秒内的CPU状态绝对值中user的平均值是301.35。也说明4核中使用了3个核。
  • ssar的procs子命令,在23:25时刻的3个stress进程pcpu分别是100.0。 这说明23:24分到23:25分这60秒内的每个stress进程的CPU使用率都是100。
  • 因此,但我们发现整机CPU状态百分比是75%时,我们可以通过ssar procs子命令将整机CPU状态绝对值301.35拆分到进程级CPU使用率,即301.25 ≈ 100 + 100 + 100。从而可以在整机user类型的CPU状态异常偏高时,精准定位到进程级因素。
  • 逻辑关系:CPU状态百分比 => CPU状态绝对值 => CPU使用率
  • image.png

4. linux系统的调度优先级

Linux的6种线程调度类型:

线程类型 类型值 类型常量 备注
TS 0 SCHED_NORMAL 分时调度线程
FF 1 SCHED_FIFO FIFO先进先出实时调度线程
RR 2 SCHED_RR 循环实时调度线程
B 3 SCHED_BATCH 批处理线程
IDL 5 SCHED_IDLE 惰性线程
DLN 6 SCHED_DEADLINE 限期调度线程,自Linux 3.14起

Linux引入这么多线程类型的主要目的是区别各个类型获取CPU资源的能力。这6类线程调度类型中,DLN属于最高优先级调度类型。FF和RR属于实时线程,优先级次高,接受实时优先级控制,取值范围是1到99。B和TS类型居于中间,接受nice值控制,其中TS类型取值范围是-20到+19,默认值是0。IDL类型优先级最低。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0