zoukankan      html  css  js  c++  java
  • java项目性能分析

    概述

    排除性能思路:压力机、网络、应用到后端所有机器的负载;应用服务日志、中间件连接数、jc、线程状态;sql慢查询、索引失效等情况;查看cpu消耗程序;外部依赖、时间消耗、分块检测。

    详情

    压力机:  首先检查是否是压力机自身问题,如脚本和操作系统的性能指标

    时间消耗: 查看所有中间件上面的时间消耗大致消耗在哪

    网络:检查网络是否达到光纤上限

    应用服务到后端机器:所有机器操作系统的负载情况

    应用服务日志:查看应用日志是否有明显报错

    中间件连接数:查看mysql、tomcat、nginx等连接数

    jc:用jstat或者jmap查看GC是否有内存泄漏,查看应用程序的catalina.out日志

    线程状态:用jstack查看是否有线程阻塞,线程状态

    通过jprofiler监控应用程序:找出耗时较长的方法

    sql慢查询:通过mysql自带内部慢查询工具,查看慢sql

    检查数据库执行计划:是否有全表扫描或者索引失效等情况

    外部依赖:外部依赖系统性能差也可能导致性能差

    模块隔离:不好定位的问题采用模块隔离法进行问题定位

    案例分析

    线程阻塞

    现象:tps差,响应时间长,cpu上不去

    分析:gc情况,cpu使用率没问题,把日志导出来发现线程状态有阻塞。定位到log4j.xm 这一类阻塞,它容易引起线程阻塞。

    优化:降低日志级别 & 更换组件成logback性能提升

    监控工具:命令(jstack  tomcatid -A 20 BLOCKED 或WAITING  >a.log)、可视化工具(jvisualvm监控至少有两道红杠)

    转载引用请标明出处,本博出自喝了少不如不喝的博客https://home.cnblogs.com/u/wangdadada
  • 相关阅读:
    轻松背后的N+疲惫——系统日志
    Wcf实现IServiceBehavior拓展机制
    一个迭代小算法,根据指定的个数对下标进行分组
    SqlServer 游标用法
    DataView RowFilter
    Asp.net Repeater 排序
    asp.net 导出Excel
    C# 导出Excel(csv )
    C# 上传图片
    C# 调用外部.exe文件
  • 原文地址:https://www.cnblogs.com/wangdadada/p/12309899.html
Copyright © 2011-2022 走看看