性能测试的监控部署(三)——大话性能测试(17)

发表于:2022-7-07 09:51

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:胡通    来源:51Testing软件测试网原创

  执行vmstat命令,会输出一些系统核心指标,这些指标可以让我们更详细地了解系统状态。
  命令的参数1,表示每秒输出一次统计信息。输出结果中,首行提示了每一列的含义,这里介绍一些和性能调优相关的列。
  -r表示等待CPU资源的进程数。这个数据比平均负载更加能够体现CPU负载情况,其中不包含等待10的进程。如果这个数值大于计算机的CPU核数,那么计算机的CPU资源已经饱和。
  -&ee表示系统可用内存数(以千字节为单位),剩余可用内存不足,也会导致系统性能问题。通过free命令,我们可以更详细地了解系统内存的使用情况。
  -si和so表示交换区写入和读取的数量。如果这个数据不为0,说明系统已经在使用交换区,计算机物理内存已经不足。
  -us、sy、id、wa和st都表示CPU时间的消耗,它们分别表示用户时间、系统(内核)时间、空闲时间、10等待时间(wait)和被偷走的时间(stolen,一般被其他虚拟机消耗)。上述这些CPU时间,可以让我们很快了解CPU是否处于繁忙状态。一般情况下,如果用户时间和系统时间相加数值非常大,则CPU处在忙于执行指令的状态。如果IO等待时间很长,那么系统性能的瓶颈可能在磁盘10方面。
  从示例中的输出可以看出,大量CPU时间消耗在用户态,也就是用户应用程序消耗了CPU时间。这不一定是性能问题,需要结合r列一起分析。
  执行下面的命令会输出系统日志的最后10行。
  从示例中的输出可以看到一次内核的oom-killer和一次TCP丢包。这些日志可以帮助排査性能问题,千万不要忘记这个命令。
  iostat命令主要用于査看计算机磁盘的IO情况。
  执行该命令输出的列主要含义如下。
  -r/s、w/s、rkB/s、wkB/s分别表示每秒读写次数和每秒读写数据量(千字节)。读写量过大,可能会导致性能问题。
  -await表示10操作的平均等待时间,单位是毫秒。这是应用程序在和磁盘交互时需要消耗的时间,包括IO等待和实际操作的耗时。如果这个数值过大,则可能硬件设备遇到了瓶颈或者出现故障。
  -avgqu-sz表示向设备发出的请求的平均数量。如果这个数值大于1,则可能硬件设备已经饱和(部分前端硬件设备支持并行写入)。
  -%util表示设备利用率。这个数值表示设备的繁忙程度,作者的经验是如果该数值超过60,可能会影响10性能(可以参照10操作平均等待时间);如果该数值达到100,说明硬件设备已经饱和。如果显示的是逻辑设备的数据,那么设备利用率高不代表后端实际的硬件设备已经饱和。值得注意的是,即使IO性能不理想,也不意味着应用程序性能会不好,可以利用诸如预读取、写缓存等策略提升应用程序性能。
  sar-n可以根据关键字以不同的角度报告实时的网络流量变化,其中DEV关键字和ETCP关键字最为常用。DEV关键字表示以设备为单位提供网络统计报告,方便快速观察各网卡性能。
  该命令输出的列主要含义如下:
  -IFACE表示设备名;
  -rxpck/s表示每秒接收的数据包数量;
  -txpck/s表示每秒发送的数据包数量;
  -rxkB/s表示每秒接收的数据包大小,单位为KB;
  -txkB/s表示每秒发送的数据包大小,单位为KB;
  -rxcmp/s表示每秒接收的压缩数据包;
  -txcmp/s表示每秒发送的压缩数据包;
  -rxmcst/s表示每秒接收的多播数据包。
  sar命令在这里用于查看网络设备的吞吐率。在排查性能问题时,可以通过网络设备的吞吐量,判断网络设备是否已经饱和。在示例输出中,ethO网卡设备吞吐量大概在22MB/s,即176Mbits,没有达到IGbit/s的硬件上限。现在我们使用的所有网卡都称为自适应网卡,即能根据网络上不同网络设备导致的不同网络速度和工作模式进行自动调整的网卡。我们可以通过ethtool工具来查看网卡的配置和工作模式,并强制网卡工作在lOOObaseT下,例如/sbin/eflitool-sethOspeed1000duplexfoilautonegoff"。
  提示
  (1)吞吐量,指在没有帧丢失的情况下,设备能够接受的最大数据传输速率。
  (2)存储的最小单位是字节(byte)。存储单位有GB、MB和KB等,它们之间的换算关系是1GB=1O24MB,1MB=1O24KB,1KB=1024Bo
  -bit:"比特",有时也称为位,用字母b表示。
  -byte:"字节”,1字节就是8比特。一个字节是8个二进制位,用字母B表示。
  (3)Mbit/s(millionbitpersecond,兆比特/秒)表示每秒传输1000000比特。该缩写用来描述数据传输速度。例如,4协询、=每秒传输4兆比特。
  (4)呑吐量与带宽的区分。呑吐量和带宽是很容易被混淆的两个词,两者的单位都是Mbit/s。
  我们先来看一下两者对应的英语,呑吐量是throughput,带宽是bandwidth。当我们讨论通信链路的带宽时,一般是指链路上每秒所能传送的比特数。我们可以说以太网的带宽是1OMbiVs,但是,我们需要区分链路上的可用带宽(带宽)与实际链路上每秒能传送的比特数(呑吐量)。我们倾向于用“呑吐量”来表示系统的数据传输性能。因为在实现过程中受各种低效率因素的影响,所以由一段带宽为10Mbit/s的链路连接的一对节点可能只有2Mbit/s的呑吐量。这就意味着,一个主机上的应用能够以最大2Mbit/s的速率向另外的一个主机发送数据。
查看《大话性能测试》全部连载章节
版权声明:51Testing软件测试网获得作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号