当前位置 博文首页 > 程序员石磊:web系统性能诊断利器推荐给你!

    程序员石磊:web系统性能诊断利器推荐给你!

    作者:[db:作者] 时间:2021-08-08 22:26

    故事开始了

    做web开发的朋友经常会随口说道:"不知道怎么回事,系统好卡啊!"那系统为什么会卡,哪里卡?我们要像中医一样望闻问切,分析原因。

    • 是前端代码编写不够好,代码运行效率太低?
    • 是网络速度太慢?
    • 是服务器响应太慢?
      到服务端以后,还分几种情况
    • 是程序算法复杂度太高,运行占用时间太长?
    • 是sql执行太慢?执行等待时间过长?
      以上这些问题,如果自己去写代码统计执行效率,未免太过笨重。现在推荐一款比较好用的服务端性能监控工具javamelody

    参考地址

    https://github.com/javamelody/javamelody/wiki

    在项目中主要配置

    • 修改web.xml
    <filter>
    		<filter-name>javamelody</filter-name>
    		<filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
    		<async-supported>true</async-supported>
    	</filter>
    	<filter-mapping>
    		<filter-name>javamelody</filter-name>
    		<url-pattern>/*</url-pattern>
    		<dispatcher>REQUEST</dispatcher>
    		<dispatcher>ASYNC</dispatcher>
    	</filter-mapping>
    	<listener>
    		<listener-class>net.bull.javamelody.SessionListener</listener-class>
    	</listener>
    

    如果想监控sql执行时间请加入以下代码在web.xml中

    <context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>
    		classpath:net/bull/javamelody/monitoring-spring-datasource.xml
    		</param-value>
    	</context-param>
    
    • 修改pom.xml增加依赖
    <dependency>
    			<groupId>junit</groupId>
    			<artifactId>junit</artifactId>
    			<version>4.12</version>
    		</dependency>
    

    启动项目后访问地址

    • http://ip:port/项目名/monitoring

    分析接口瓶颈

    在这里插入图片描述
    这里显示出来每次请求的平均响应时间和最大响应时间,很容易看出来哪个接口性能比较差,再针对性的优化耗时过长的问题。

    分析sql执行时间过长的问题

    在这里插入图片描述
    这里显示出来每个sql耗时过长,可以针对性进行优化。

    怎么找出一个接口背后执行了哪些sql?

    点击具体一个请求,如下图所示:
    在这里插入图片描述
    页面跳转如下图所示
    在这里插入图片描述
    即可看出

    如果看出一个耗时过长的sql是哪个接口,方面定位在哪个地方执行了sql

    点击红框如下图所示:
    在这里插入图片描述
    页面跳转
    在这里插入图片描述
    点击右下角用到的
    在这里插入图片描述
    即可展示出来

    其他有用信息

    在这里插入图片描述

    • java内存使用情况
    • 数据库连接信息
    • 线程
      等等,更多请查看文档。再一次感谢开源。

    在这里插入图片描述
    更多文章请点击 青苗谷

    cs