cpu的性能指标主要包括cpu使用率,系统平均负载,进程上下文切换和cpu缓存命中率。下面分别来介绍具体指标的含义和相应的观测工具。
- cpu使用率
cpu使用率根据cpu上运行任务的不同,又被分为下面几类。ps 下文小括号中的英文用来代表观测工具中的该项指标,不同观测工具会略有不同。下面给出的是完整形式和可能的缩写。
1)用户cpu使用率:包括用户态cpu使用率(user)和低优先级用户态cpu使用率(nice)。表示 CPU 在用户态运行的时间百分比。用户态cpu使用率高,说明有应用程序比较繁忙。
2)系统cpu使用率:表示cpu在内核态运行的时间百分比(sys)(不包括中断)。系统cpu使用率高,说明内核比较繁忙。
3)等待I/O的cpu使用率:表示cpu等待I/O时间百分比(iowait)。等待I/O的cpu使用率高,说明系统和硬件设备的I/O交互时间比较长。
4)软中断和硬中断cpu使用率:分别表示cpu运行软中断(software interrupts 缩写si),硬中断(hardware interrupts 缩写hi)处理程序的时间百分比。软中断硬中断使用率高,通常说明系统发生了大量的中断。
5)和虚拟化相关的cpu使用率:窃取cpu使用率(steal)和 客户cpu使用率(guest), 分别表示被其他虚拟机占用的cpu时间百分比和运行客户虚拟机cpu时间百分比。(#)
常用的cpu使用率的观测工具有
1) top 全面的观测工具,包含cpu使用率的指标
2) htop top的增强版,没有用过
3) pidstat 进程和线程的cpu使用率,中断上下文的切换次数
4)mpstat 每个cpu使用率和软中断次数
5)/proc/softirqs 软中断数据统计
6)/proc/interrupts 硬中断数据统计
- 系统平均负载
系统平均负载,表示系统平均的活跃进程数。它反映了系统的整体负载情况。理想情况下,平均负载等于逻辑cpu个数,这表示每个cpu都恰好被充分利用,如果平均负载大于逻辑cpu个数,就表示负载比较重了。
系统平均负载观测工具:
1)uptime 运行upime 平均负载会出现三个数值,分别表示最近1分钟,最近5分钟,最近15分钟的平均负载
2)
- 进程上下文切换
进程的上下文切换 包括两个指标 1)无法获取资源而导致的自愿上下文切换(voluntary context switches cswch) 2)被系统强制调度导致的非自愿上下文切换 (non voluntary context switches nvcswch)
进程的上下文切换观测工具:
- vmstat 系统的上下文切换
- pidstat 加上-w 选项 可以查询进程的上下文切换情况
- cpu缓存命令率
cpu缓存分为L1,L2, L3 三级缓存,L1和L2 常用于单核中,L3则用于多核中。
从 L1到L3,三级缓存的大小依次增大,相应的,性能依次降低。Cpu缓存命中率,衡量的是cpu缓存的复用情况,命中率越高,则表示性能越好。
cpu缓存命令率的观测工具:暂无