问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

性能测试瓶颈:CPU问题的深度分析和调优

创作时间:
作者:
@小白创作中心

性能测试瓶颈:CPU问题的深度分析和调优

引用
CSDN
1.
https://blog.csdn.net/cs888zsy/article/details/144790988

在进行性能测试时,CPU问题是最常见的瓶颈之一。本文将深入探讨CPU的原理、监控命令和性能指标,帮助读者更好地理解和优化CPU性能。

CPU的介绍

CPU(中央处理器:Central Processing Unit))是一块超大规模的集成电路,是计算机的运算核心和控制核心。其主要功能是解释计算机指令以及处理计算机软件中的数据。

CPU由三个模块组成,分别是控制单元、运算单元和存储单元,这三个部分通过内部总线连接起来:

  • 控制单元:根据计算结果控制数据的流向,负责读取内存中的指令和数据,并控制计算机的运行。
  • 运算单元:负责执行数据的计算任务。
  • 存储单元:用于临时存储数据,其容量比磁盘和内存小但速度更快。

CPU的信息查看命令

在进行性能测试之前,了解服务器的CPU基本信息和参数是非常重要的。以下是一些常用的CPU查看命令:

  1. 查看物理CPU的个数:cat /proc/cpuinfo
  2. 查看逻辑CPU的个数:cat /proc/cpuinfo | grep "processor" | wc -l
  3. 通过lscpu命令查看:显示CPU制造商、架构、CPU数量、型号、主频以及缓存等信息。

CPU关注性能指标

在性能测试中,需要重点关注以下几个CPU性能指标:

1. CPU使用率

CPU使用率是衡量CPU繁忙程度的重要指标,一般不要超过75%。CPU使用率的计算公式是非空闲时间占总CPU时间的百分比。具体可以细分如下:

  • %us:用户态CPU使用率,表示应用程序占用CPU的百分比。
  • %sy:系统态CPU使用率,表示内核占用CPU的百分比。
  • %iowait:等待I/O的时间百分比,高值说明系统与硬件设备的I/O交互时间较长。
  • ni:软/硬中断处理程序的时间百分比,高值说明系统发生了大量中断。
  • %st/gu:在虚拟化环境中会用到的窃取CPU使用率和客户CPU使用率,分别表示被其他虚拟机占用的CPU时间百分比和运行客户虚拟机的CPU时间百分比。
  • %id:空闲CPU百分比,CPU使用率 = (100-id)%。

2. 平均负载

平均负载指系统的平均活跃进程数,是服务器性能的重点关注值。主要包括三个数值,过去1、5、15分钟的平均负载。理想情况下,平均负载等于逻辑CPU个数,如果大于逻辑CPU个数,说明负载较重;如果平均负载的值高于CPU的3-5倍,那么很有可能CPU存在瓶颈。

3. 上下文切换

上下文切换是指系统内核和应用存储共用CPU的内核时,需要不停地争抢资源。过多的上下文切换会消耗CPU时间,导致CPU内核消耗资源较高,成为性能瓶颈。

性能的基本Linux命令

了解了CPU需要关注的性能指标后,接下来介绍一些常用的监控命令:

1. top命令

top命令是一个常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。其输出结果主要包括:

  • 第一行数据:当前系统时间、启动运行时间、终端用户连接数和系统负载。
  • 第二行数据:进程数或线程数。
  • 第三行数据:CPU的使用情况,包括用户态使用时间占比、系统态使用时间占比、中断占用CPU的情况、空闲时间占比、IO等待时间占比等。
  • 第四行数据:内存的使用情况,包括总的内存、空闲内存、使用的内存、缓冲区和缓存等。
  • 进程列表详细数据:包括进程ID、进程归属者、进程优先级、分配的虚拟内存、实际物理内存、进程状态、CPU使用率、内存使用率等。

2. mpstat命令

mpstat命令用于显示进程相关的统计报告信息,需要额外安装。常用参数包括:

  • mpstat 1 10:1秒刷新一次数据,总共打印10次。

3. pidstat命令

pidstat命令用于监控全部或指定进程的CPU、内存、线程、设备IO等资源占用情况和上下文切换信息。常用参数包括:

  • pidstat -u -w -p pid:过滤指定的进程的信息显示。

4. vmstat命令

vmstat命令是一个强大的监控工具,可以对虚拟内存、进程、CPU活动进行监控。常用参数包括:

  • vmstat 1 5:间隔1秒钟刷新一次,总共收集5次。

5. iostat命令

iostat命令用于显示设备、分区和网络文件系统的CPU统计信息和输入/输出统计信息。重点参数包括:

  • -c:显示CPU使用率报告
  • -d:显示设备使用率报告
  • -k:以每秒千字节显示统计报告
  • -m:以每秒兆字节显示统计报告
  • -x:显示扩展统计信息

6. dstat命令

dstat是一个用来替换vmstat、iostat等命令的工具,功能比较全,有彩色的界面。常用参数包括:

  • -c:CPU监控
  • -m:内存
  • -d:磁盘
  • -n:网络
  • -l:系统负载
  • -y:系统
  • -r:IO
  • -t:加上时间显示

7. sar命令

sar命令几乎可以统计服务器的所有信息。常用参数包括:

  • -B:分页状况
  • -b:I/O和传输速率信息
  • -d:块设备状况
  • -I:中断信息状况
  • -n:网络统计信息
  • -q:系统负载压力统计
  • -r:内存利用率信息
  • -u:CPU利用率信息

通过以上命令和指标的监控,可以有效地分析和优化CPU性能,提高系统的整体运行效率。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号