服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 不懂CPU性能分析?这份性能分析指南请收好

不懂CPU性能分析?这份性能分析指南请收好

2023-12-13 17:07未知服务器之家 Linux

在前面的几篇案例分析文章中,我们通过多个案例、从不同角度、使用不同的性能工具分析了CPU性能问题,今天我们就来总结下,怎么能又快又准的定位到问题。要回答好这个问题,我们就需要明白影响CPU的指标有哪些?又有哪些

不懂CPU性能分析?这份性能分析指南请收好

在前面的几篇案例分析文章中,我们通过多个案例、从不同角度、使用不同的性能工具分析了CPU性能问题,今天我们就来总结下,怎么能又快又准的定位到问题。要回答好这个问题,我们就需要明白影响CPU的指标有哪些?又有哪些工具可以获取到指标数据,这些数据的合理值是什么?让我们一起把这几个问题搞明白。

CPU性能指标

不懂CPU性能分析?这份性能分析指南请收好

1、CPU使用率:

  • 用户CPU(us):户态运行的时间百分比,使用率越高,说明有应用程序比较繁忙。
  • 系统CPU(sy):内核态运行的时间百分比,使用率越高,说明内核越繁忙。
  • 等待CPU(wa):通常也称为 iowait,表示等待 I/O 的时间百分比,使用率高,说明系统与硬件设备的I/O交互时间比较长
  • 软中断CPU (si):处理软中断时间百分比,大量的中断也会导致CPU的使用率升高。比如前面分析的大量的小网络包导致频繁的硬中断和软中断。
  • 硬中断CPU (hi): 处理硬中断时间百分比。硬中断是硬件触发,执行速度很快,使用率高的话,大部分是硬件故障导致。
  • 空闲CPU(id):代表空闲时间百分比。越高反而说明压力越小
  • 低优先级 (ni):低优先级用户态CPU时间百分比,nice可取值范围是-20到19,数值越大,优先级反而越低,默认值是0。
  • steal(st): 代表当系统运行在虚拟机中的时候,虚拟机占用的CPU时间。
  • guest: 代表通过虚拟化运行其他操作系统的时间,也就是运行虚拟机的CPU时间。

2、上下文切换

  • 上下文切换分为进程上下文切换、线程上下文切换。线程上下文切换的代价是远远高于线程上下文切换的,因为涉及到虚拟内存、栈、全局变量等资源的加载,而线程的虚拟内存是共享的,就会快很多。
  • 上下文切换中自愿上下文切换、非自愿上下文切换是我们关注的重点。

3、平均负载

  • 概念:系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。这里提到的进程状态也是我们关注的重点。比如僵尸进程、不可中断进程。
  • 每个进程都可以得到cpu时间片是最完美的,所以平均负载高于CPU核心数就说明存在过载的情况了。

4、CPU缓存

  • 这取决于CPU型号的具体指标。越大越说明CPU的性能表现越出色。

观测工具

我们知道了CPU的核心性能指标,如果能理解每个指标对应的工具的特性,一定更高效、更灵活,下面是我整理的性能指标对应的查询工具表格,方便我们去观测这些指标。

不懂CPU性能分析?这份性能分析指南请收好

分析CPU性能问题思路

分析CPU性能问题时,可以采用从全局到局部的方法,先从整体去看CPU的使用情况,缩小排查范围,在性能工具选择上,使用支持指标较多的工具,这样可以一次看到更多的指标,可以通过以下步骤快速定位。

  • 使用top命令可以得到检查CPU的总体情况。top命令可以看到的指标是比较多的,也很直观。
  • 使用vmstat可以得到上下文切换次数、中断次数、运行状态和不可中断状态的进程数。
  • 使用pidstat可以得到进程的用户CPU使用率、系统 CPU 使用率、以及自愿上下文切换和非自愿上下文切换情况。

通过上面的一些列检查,我们大致可以把问题缩小到具体的进程或者线程级别,在通过相关的分析工具进一步分析,找到影响性能的罪魁祸首就水到渠成了。

延伸 · 阅读

精彩推荐
  • Linux快速修改Linux服务器远程端口方法

    快速修改Linux服务器远程端口方法

    关于安全端口的一些说明,linux远程端口默认22,很多破解机,等模拟猜测系统都是以默认端口22来模拟的 而22的端口是非常危险的,下面新之洲为大家带来...

    新之洲数据3232020-10-23
  • Linux查看和更改rpm的默认安装路径的方法

    查看和更改rpm的默认安装路径的方法

    这篇文章主要介绍了查看和更改rpm的默认安装路径的方法,rpm是RedHat系的Linux系统的软件包管理器,需要的朋友可以参考下...

    服务器之家7492019-09-10
  • Linux如何利用SystemTap统计函数执行耗时详解

    如何利用SystemTap统计函数执行耗时详解

    SystemTap是监控和跟踪运行中的Linux 内核的操作的动态方法,下面这篇文章主要给大家介绍了关于如何利用SystemTap统计函数执行耗时的相关资料,文中通过示...

    源代码4822022-02-17
  • LinuxLinux下修改时间时区的方法介绍

    Linux下修改时间时区的方法介绍

    在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和 hwclock用法相近,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系...

    Linux教程网4132019-11-25
  • LinuxLinux whatis命令的使用方法

    Linux whatis命令的使用方法

    这篇文章主要介绍了Linux whatis命令的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随...

    沧海一笑-dj3052020-09-24
  • LinuxLinux 新手请进~8个 Date 命令使用示例

    Linux 新手请进~8个 Date 命令使用示例

    本教程简要介绍了如何使用 date 命令在 Linux 系统上显示和设置日期。希望对各位有帮助!...

    Linux学习4832021-09-15
  • Linux安装和使用额外的 Gedit 颜色主题

    安装和使用额外的 Gedit 颜色主题

    Gedit 是 Linux 世界中最流行的文本编辑器之一。它主要是一个文本编辑器,但经过一些调整,你也可以使用它进行编写程序。 现在,程序员通常更喜欢较暗...

    未知1562023-08-17
  • LinuxLinux 下 Sublime Text 中文输入问题的解决方案

    Linux 下 Sublime Text 中文输入问题的解决方案

    这篇文章主要为大家介绍了Linux下遇到Sublime Text 中文输入问题的解决办法,下面脚本之家的小编和大家分享了一个解决Sublime Text 无法输入中文这个问题的方...

    Linux教程网6062019-10-31