一、性能监控指标及命令:

1. cpu:服务器的核数直接影响cpu即运算(处理事务)能力

命令:top

us(user):用户态CPU使用时间占比

sy(system):内核态CPU使用时间占比

ni(nice):低优先级用户态使用时间占比

id(idle):空闲的CPU时间比例,值越大,CPU空闲时间比例越高,利用率越低

wa(iowait):IO等待状态的CPU时间比例

注:1. 一般情况下,如果%us+%sy<=70%,我们可以认为系统的运行状态良好。

        2. iowait% 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题。

2. 内存:

命令:top、free –h

 total = used + free

系统已用内存(used)包含buff/cache

3. 负载:负载即为计算机需要处理的事务的堆积情况,负载上去后理论上cpu占用应该很大(处于最大工作状态)

命令:top、uptime

 

 三个数值分别表示1分钟、5分钟、15分钟内的平均负载情况

这里的平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,可以简单的理解为平均负载就是系统平均活跃进程数。

4. IO : 

命令:iostat –x –k 2 3     //每隔2S输出磁盘IO的使用情况,共采样3次

注:占用IO过高,可以做如下考虑:

1)首先考虑写日志内容过多(或者访问量较大)

  •   日志打印的内容是否合理( 前端应用服务器,要避免程序频繁打本地日志、或者异常日志)
  • 日志级别是否合理
  • 考虑异步写日志(一般可以解决CPU锯齿波动),为减少磁  盘IO操作,将日志写如内存分区;但日志量太大,很容易将内存  写满,再考虑将日志进行压缩。

  2)磁盘满(压测过程中现象:TPS降低,响应时间增加)

  • 找到导致磁盘满的大文件,合理的删除,最好有定期清理脚本,可以定期清理
  • 对磁盘空间进行扩大磁盘容量
  • 不好清理的,在主硬盘上进行读写操作,基础数据定时移动  到挂载硬盘上。 

3)数据库连接数超限制,导致sleep比较多,sleep任务太多的处理:

  • 程序里每次连接数据库后,记得关闭数据库。
  • 或者,在mysql配置文件中,设置mysql超时时间wait_timout,  默认是八小时,设置低一点

4)数据库IO过高,查询量大,可以进行读写分离(增加读库)或者分库操作,减小磁盘压力,调优一些buffer参数以降低IO写的频率

5)磁盘IO过高是由于读写文件导致的: 可以利用raid来减轻压力

6)磁盘本身性能不足: 考虑更换新磁盘(性能强劲的)

5. 磁盘:磁盘占用过高时也会影响性能

命令1:  fdisk –l           //查看硬盘及分区情况

命令2:df –h          //查看文件系统的磁盘空间使用情况

6. 网络:网络分为进和出两个即接收请求和发出响应,网络慢直接造成响应时间过长

        网络带宽也是性能测试时要考虑的因素,如果并发量上不去很有可能就是网络带宽的原因。

7. 接口RT标准:一般为400ms以内,实际按业务要求

二、测试,结果分析

1. 不断增加并发的线程 -得到以下数据 :

        a. 并发线程数-RT曲线;

        b. 并发线程数-QPS曲线;

      查看a曲线的RT允许范围内的最大线程数:x

      再查看b曲线在最大线程数x下的QPS,该QPS为此服务器配置下的最大QPS

2. 性能调优:

        查看在最大QPS时的cpu、内存负载情况,会出现不同的场景,根据不同场景进行性能瓶颈分析:

        a. cpu比较高,负载也比较高;

        b. 内存过高,cpu上不去;

        c. IO过高

        d.  ......

三、性能指标

1、硬件上的性能瓶颈:

一般指的是CPU、内存、磁盘读写等的瓶颈,为服务器硬件瓶颈。

2、应用软件上的性能瓶颈:

一般指的是服务器操作系统瓶颈(参数配置)、数据库瓶颈(参数配置)、web服务器瓶颈(参数配置)、中间件瓶颈(参数配置)等

3、应用程序上的性能瓶颈:

一般指的是开发人员,开发出来的应用程序(如sql语句、数据库设计、业务逻辑、算法等)。

4、操作系统上的性能瓶颈:

一般指的是Windows、linux等操作系统,如出现物理内存不足时,或虚拟内存设置不合理(虚拟内存设置不合理,会导致虚拟内存的交换率大大降低,从而导致行为的响应时间大大增加,可以认为在操作系统上出现了性能瓶颈)。

5、网络设备上的性能瓶颈:

一般指的是防火墙、动态负载均衡器、交换机等设备。

性能瓶颈原因定位十分复杂,需抽丝剥茧逐一排除,以上信息仅供参考。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐