zoukankan      html  css  js  c++  java
  • 性能测试-详细的 TPS 调优笔记

    概述

    在本地针对项目的登录接口做了一次简单的压力测试。200并发持续120s,观察吞吐量

    运行结束之后,吞吐量是这样的

    如图所示,吞吐量波动巨大,完全不正常。现在我们需要去观察一下服务器了

    mpstat -P ALL 1 先看一下cpu的运行情况*

    可以发现cpu的利用率呈现一种阶梯式递增的趋势,但是负载却不高,说明cpu运行的问题不大

    jstat -gcutil 1 1000观察一下内存gc的情况

    老年代内存空间不足了,所以导致新生代的对象进不来,频繁fullgc,fullgc的时间又会很长,所以吞吐量一直上不去
    检查jvm的内存空间配置

    堆区总共只有1g的内存,几乎全部分给了新生代,导致老年代只有5M的可怜空间

    修改内存配置
    现在来修改一下内存参数,再加入一个并行回收的机制

    再次运行脚本,观察TPS和gc频率

    这次运行,fullgc的频率变得很低了,而且吞吐量也比较平稳,没有什么大的波动。但是运行到一分半钟的时候,吞吐量出现了塌方式的下降,同时出现了异常。
    观察异常日志,发现超过了tomcat最大连接数了

    **修改tomcat连接数配置,再次运行脚本

    这次不像刚刚那要大面积报错了,但是依然有一些异常出现。有一部分是超时,还有一部分是 Software caused connection abort: recv failed

    调整一下请求的连接方式,使用java模式,并保持长连接,再观察运行结果

    这次一个报错的都没有了!

  • 相关阅读:
    PHP is_numeric 检测变量是否为数字或数字字符串
    CSS texttransform实现首个或全部字母大写或小写
    To be a true man
    前辈的话
    做好你自己
    PHP mysql_real_escape_string() 函数
    这些事,我们早就该知道……
    Win7 如何更改用户名
    js或css文件后面跟参数的原因说明
    网页优化插件 YSlow
  • 原文地址:https://www.cnblogs.com/Zfc-Cjk/p/12204061.html
Copyright © 2011-2022 走看看