性能测试

用户响应时间(RT) = 服务器响应时间 + 网络时间

性能分析思路:

  1. CPU利用率
  2. 内存利用率
  3. 磁盘I/0的利用率和延迟
  4. 网络利用率

Linux监控命令:

top命令:查看CPU、内存、磁盘I/0的使用情况

第一行,任务队列信息,同 uptime 命令的执行结果

系统时间:07:27:05

运行时间:up 1:57 min,

当前登录用户: 3 user

负载均衡(uptime) load average: 0.00, 0.00, 0.00

average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

如果这个数除以逻辑CPU(grep 'model name' /proc/cpuinfo | wc -l)的数量(load):

  • 0.7 < load < 1: 此时是不错的状态,如果运行更多的进程任务,你的CPU仍然可以应付。
  • load = 1: 你的CPU即将拥堵,而且没有更多的资源额外的任务,赶紧看看发生了什么吧。
  • load > 5: 非常严重拥堵,我们的CPU非常繁忙,每个进程任务都无法很快的运行

怎么看:

通常我们先看15分钟load,如果load很高,再看1分钟和5分钟负载,查看是否有下降趋势。
1分钟负载值 > 1,那么我们不用担心,但是如果15分钟负载都超过1,我们要赶紧看看发生了什么事情。所以我们要根据实际情况查看这三个值。

第三行,cpu状态信息

0.0%us【user space】— 用户空间占用CPU的百分比。

0.3%sy【sysctl】— 内核空间占用CPU的百分比。

0.0%ni【】— 改变过优先级的进程占用CPU的百分比

99.7%id【idolt】— 空闲CPU百分比

0.0%wa【wait】— IO等待占用CPU的百分比

0.0%hi【Hardware IRQ】— 硬中断占用CPU的百分比

0.0%si【Software Interrupts】— 软中断占用CPU的百分比

第四行,内存状态

1745.8 total, 1105.6 free, 162.6 used, 477.6 buff/cache【缓存的内存量】

第五行,swap交换分区(虚拟磁盘分区)信息

0.0 total, 0.0 free, 0.0 used. 1436.5 avail Mem 【缓冲的交换区总量】

备注:

可用内存=free + buffer + cached

对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,

第四行中空闲内存总量(free)是内核还未纳入其管控范围的数量。

纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

sar命令:查看CPU的使用情况

%user 用户空间的CPU使用

%nice 改变过优先级的进程的CPU使用率

%system 内核空间的CPU使用率

%iowait CPU等待IO的百分比

%steal 虚拟机的虚拟机CPU使用的CPU

%idle 空闲的CPU

备注:

主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求;

如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈。

free命令:查看内存使用情况

总结:

  • 优先使用top命令,这个基本可以查看CPU和内存、swap所有的运行状态。
  • CPU的更详细信息的可以用sar查看
  • 内存的更详细信息可以用free查看
  • 发现是Java程序占用过高时,则可以使用Java自带的命令(jstat、jmap等)查看更详细的情况

监控软件:

  • Spotlight:监控数据库、服务器CPU、内存等使用情况
  • 阿里云:自带的的监控图表可以查看

平台监控实践:

Linux:

  1. 使用top -b -l 10 > filepath/top.log命令编写记录服务器性能日志脚本
  2. 将top.log中的数据处理为EXCEL识别的格式
  3. 使用EXCEL将数据分析为折线图;

Windows:

  1. 使用【资源监视器】查看

Java性能监控:Probe

概念理解:

jar包:将一段实现特定功能的独立代码打成一个包

Tomcat:中间件,也是一个容器。将HTTP server的基础功能都实现,开发只需要关注业务代码的实现;

JVM:Java虚拟机,所有的Java代码都需要在其上才能运行,如Tomcat、Java程序等。是一个容器。

中间件:Tomcat、mq等

监控Java的性能,本质就是监控JVM

使用:

  1. 在Probe官网下载war包
  2. 将war包放到%TOMCAT_HOME%/webapps/目录下
  3. 配置文件中增加manager、manager-gui权限、开启远程监控;
  4. 重启Tomcat
  5. 浏览器访问:http://主机ip/prober

MySQL性能监控:MONyog

性能分析方法:

生成负载,监控服务器性能指标

原文地址:https://www.cnblogs.com/ifagain/p/14115761.html