• 性能测试


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

    性能分析方法:

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

  • 相关阅读:
    log4net 简单使用教程(配置)
    C#WinForm 国际化的简单实现,多语言实现
    EF Power Tool 参数错误 HRESULT:0x80070057 (E_INVALIDARG)) 解决办法
    如何用委托与事件实现winfrom窗体之间值传递
    VS2010自带的Dotfuscator 5注册
    WinForm 实现主程序(exe)与其关联类库(*.dll)分开存放
    POJ_3211 Washing Clothes (01背包)
    POJ_3624 Charm Bracelet ( 01背包 )
    集训队内部测试赛(2012.01.02)
    HDU_1011 Starship Troopers && HDU_1561 The more, The Better (树型dp)
  • 原文地址:https://www.cnblogs.com/ifagain/p/14115761.html
Copyright © 2020-2023  润新知