性能调优-cpu的性能指标【经典篇】

一 cpu查看core数命令

1.1 查看物理core数

1.查看物理CPU的个数:cat /proc/cpuinfo

这个虚拟机的物理cpu2个,每个物理cpu的逻辑CPU个数为1个,所以逻辑CPU的个数就是2个。

1.2 查看逻辑cpu个数

cat /proc/cpuinfo| grep "processor"| wc -l

wc -l: wc 是一个命令,用于计算文件中的字节数、字数和行数。-l 选项告诉 wc 只计算行数。

1.3 lscpu命令查看cpu信息

二 cpu性能指标

2.1 cpu使用率

CPU使用率是我们最直观能看到的指标,CPU利用率行业内标准是一般不要超过75%,如果超过了就需要分析原因,并找到问题和调优。

2.1.1 cpu使用率含义

CPU使用率=非空闲时间占总CPU时间的百分比越高说明CPU越繁忙,就可能需要进行性能问题分析和调优。

2.1.2 使用top命令查看

1)%us :用户 CPU,比如java程序,应用程序等**:用户态使用CPU的百分比(user)**。用户CPU使用率高,通常说明有应用程序比较繁忙

2)%sy :系统CPU:表示CPU在内核态运行的时间百分比。系统CPU 使用率高,说明内核比较繁忙。

3)%iowait :等待I/O:表示等待I/O的时间百分比。iowait高,说明系统与硬件设备的I/O 交互时间比较长,比如跟键盘、网卡、显示器等交互。

4)ni【软/硬中断】:分别表示内核调用软中断处理程序、硬中断处理程序的时间百分比。它们的使用率高,通常说明系统发生了大量的中断。

5)当CPU的时间分片正在处理某个任务还没完成时钟时间的时候,突然收到硬中断或软中断指令,CPU被打断需要去响应,才能继续执行任务;

6)如果ni参数很高,说明中断的数量很多,说明CPU不停的被打扰,需要分析是什么中断。一般ni比较高的情况比较少,不过ni高也会导致sy【内核占比】比较高,是环环相扣的,要能分析。

  1. %st/gu:steal/guest:在虚拟化环境中会用到的窃取CPU使用率(steal)和客户CPU使用率(guest),分别表示被其他虚拟机占用的CPU时间百分比,和运行客户虚拟机的CPU时间百分比。 这两个一般比较低,不会成为cpu的瓶颈 不太需要关注

8)%id:空闲 CPU百分比,CPU使用率 = (100-id)% ; 比较简单的算法:100% - id% = CPU使用率

2.2 cpu平均负载

平均负载指系统的平均活跃进程数,一个时间段内平均有多少进程数在活跃,这是服务器性能的重点关注值,一般CPU的使用率高的话,平均负载也是高的。

过去1、5、15钟的平均负载。可以通过这三个值看到负载整体的趋势

1)逐步降低,是CPU后来越来越空闲;逐步增加,CPU越来越繁忙;或者持平,就是CPU稳定。

2) 理想情况下,平均负载=逻辑 CPU个数,这表示每个CPU都恰好被充分利用;如果大于逻辑 CPU 个数,就表示负载较重;如果平均负载的值高于CPU的3- 5倍 ,那么很有可能CPU存在瓶颈,就需要分析和调优。

2.3 上下文切换cs

系统内核和应用存储共用CPU的内核,就会需要不停的争抢资源,就会出现上下文切换。

上下文切换多了不是好事儿,过多的上下文切换,会将原本运行进程的CPU时间,消耗在寄存器、内核栈以及虚拟内存等数据的保存和恢复上,很少有时间真正计算和处理数据减少和缩短了进程真正运行的时间

三 性能指标查看命令

3.1 top命令

top命令:常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况

1)第1行数据:

  • 当前系统时间,启动运行了多长时间。

  • 2 users, 有多少个终端用户连接, 不代表多少个账户 【同一个账户 多个终端也算】

  • load average:服务器性能的重点关注值,系统过去1分钟的平均负载、 过去5分钟的平均负载、 过去15分钟的平均负载。如果平均负载大于CPU数量,甚至达到3- 5倍cpu数量,说明系统负载非常大了。这个时候才会需要去观察下面的详细数据分析原因。

**2)第2行数据:**默认是进程数,可以切换为线程数

  • 总进程数,正在运行的进程数,休眠的进程数 。

  • 按下H, 切换为 Threads 当前总线程数 。

3.2 top命令

3.7 sar命令

  • -B 分页状况

  • -b I/O 和传输速率信息

  • -d 块设备状况

  • -I 中断信息状况

  • -n 网络统计信息

  • -q 系统负载压力统计

  • -r 内存利用率信息

  • -u CPU利用率信息

相关推荐
杰哥技术分享9 分钟前
在 CentOS 上安装 Docker 和 Docker Compose 并配置使用国内镜像源
linux·docker·centos
知更鸟呆呆13 分钟前
【Linux操作系统】基础开发工具(yum、vim、gcc/g++)
linux·运维·vim
xiangyong5814 分钟前
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
linux·ubuntu·gnu
Gold Steps.1 小时前
Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志
运维·docker·云原生·es
weixin_461259411 小时前
[C]C语言日志系统宏技巧解析
java·服务器·c语言
m0_637146931 小时前
C语言基础面试问答
运维·服务器
t198751281 小时前
Linux 上的 Tomcat 端口占用排查
linux·tomcat·firefox
小狗爱吃黄桃罐头2 小时前
正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-12.1 Linux内核启动流程简介
linux·arm开发·学习
Clownseven2 小时前
SSH/RDP无法远程连接?腾讯云CVM及通用服务器连接失败原因与超全排查指南
服务器·ssh·腾讯云
ricky_fan2 小时前
window下配置ssh免密登录服务器
运维·服务器·ssh