zoukankan      html  css  js  c++  java
  • 性能测试

    用户响应时间(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

    性能分析方法:

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

  • 相关阅读:
    4.变量与运算符
    2.python的基本数据类型
    bzoj 2337: [HNOI2011]XOR和路径
    bzoj 2109: [Noi2010]Plane 航空管制
    bzoj 1566: [NOI2009]管道取珠
    bzoj 3439: Kpm的MC密码
    bzoj 2957: 楼房重建
    十、mysql之索引原理与慢查询优化
    九、MySQL 5.7.9版本sql_mode=only_full_group_by问题
    八、多表查询
  • 原文地址:https://www.cnblogs.com/ifagain/p/14115761.html
Copyright © 2011-2022 走看看