#yyds干货盘点# 性能问题分析策略

智慧并不产生于学历,而是来自对于知识的终生不懈的追求。这篇文章主要讲述#yyds干货盘点# 性能问题分析策略相关的知识,希望能为你提供帮助。
分析被测应用类型首先笔者认为在做性能分析甚至在做性能测试之前,我们必须要做或者明确的一点是被测的应用或者系统的类型。当然了,可能 有人觉得被测应用划分有多个维度,我们要怎么划分。确实系统可以从不同的多个维度进行划分或者归类。但是在做性能问题分析时,系统的类型一般是资源消耗方面划分的。如下:

从上图中可以发现,一般来说系统可以分为CPU/IO密集型,然后确定了类型之后,我们就可以有一个比较好分析问题的方向了。


如何做性能分析性能分析大家都知道,有时候不是那么容易,但是它还是总是有一些套路或者方法可以遵循的。如下将会一些和性能问题分析相关的一些干货。
CPU问题分析

  • 首先了解CPU相关的基本信息, 在Linux系统(CentOS)下,可以使用如下命令,命令执行结果如下图,其中Architecture:是用的x86的架构并且是64位;CPU的核心数是4;CPU核心的频率是2300MHz;


lscpu


【#yyds干货盘点# 性能问题分析策略】

  • vmstat命令,此命令是比较常用过的Linux监控软件/工具,可以监控CPU使用率,内存使用,虚拟内存交换情况或者IO状态等。在使用过程中需要设定两个参数一个是间隔时间设定,另外一个是取样次数,如下图是vmstat命令执行的结果,表示每2秒钟取样一次,总共取样50次。
  • 其中r表示当前的排队的线程;
  • b表示阻塞的进程数;
  • swpd表示已使用的虚拟内存的大小,一般是0,如果> 0,表示机器的物理内存不足了,可以查看为什么物理内存不足,是不是有内存泄漏,如果没有,可能就要考虑加大内存或者将耗内存进程转移到其他物理机上;
  • free表示空闲的物理内存大小;
  • buff主要是系统占用,一般是权限缓存,目录内容等;
  • cache是记录打开的文件,给文件做缓冲;
  • si表示每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用了
  • so表示每秒虚拟内存写入磁盘的大小,如果这个值大于0,也表示物理内存不够用了
  • bi表示块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,可以用来监控IO活动情况,比如有文件流传输等;
  • bo表示块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。如果bo或者bi值过大,那么就需要调整,说明IO压力过大。
  • in表示每秒cpu中断次数
  • cs表示每秒钟上下文切换次数,这个值越小越好,如果过大的话,表面CPU时间干正事的时间就少了,这可能会造成一个性能问题,需要去关注的。
  • us表示用户cpu时间
  • sy表示系统cpu时间,如果过高表示系统调用时间长,IO操作频繁也可能导致系统调用时间长
  • id表示空闲cpu时间
  • wa值越高,表示IO等待越严重,此时需要对IO操作进行优化?




总结:以上是对性能问题分析中,首先我们要做的事情是对被测系统进行分类,找出我们分析的大方向,其实和大家分享了CPU分析监控的一些方法或手段,希望对大家有帮助,后续会继续分析性能问题分析相关文章,请大家多关注。

    推荐阅读