Java项目性能监控和调优工具-Javamelody的学习总结

1.简介:

  JavaMelody能够在运行环境监测Java或Java EE应用程序服务器。并以图表的形式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。

2.准备:

下载javamelody-1.47.0.jar和jrobin-1.5.9.1.jar,引用到项目中.

3.配置方法:

一般会在第一个Filter之前加上JavaMelody的Filter配置,确保JavaMelody的Filter第一个被执行

在web.xml中配置filter:

  	<filter>
    	<filter-name>monitoring</filter-name>
		<filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>monitoring</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<listener>
		<listener-class>net.bull.javamelody.SessionListener</listener-class>
	</listener>

4.重启项目:打开链接:http://<host>:<port>/projectname/monitoring      例如:http://127.0.0.1:8080/myproj/monitoring

至此,基本配置已完成,可以进行简单的性能监控,javamelody与struts2和spring3也可以进行集成配置,这部分会在后续的总结中详细说明。

5.和struts2集成:

1)在struts-common.xml中加入以下代码:

   <package name="default" extends="struts-default" >
	    <interceptors>
	        <interceptor name="monitoring" class="net.bull.javamelody.StrutsInterceptor"/>
	        <interceptor-stack name="myStack">
	            <interceptor-ref name="monitoring"/>
	            <interceptor-ref name="defaultStack"/>
	        </interceptor-stack>
	    </interceptors>
	    <default-interceptor-ref name="myStack"/>
	</package>

2)将struts-模块名.xml中的extends改为default,  即:

<package name="qx-module" namespace="/module" extends="default">

6、和Spring集成

1)在spring-common.xml中添加以下代码:

  	<bean id="facadeMonitoringAdvisor" class="net.bull.javamelody.MonitoringSpringAdvisor">
	    <property name="pointcut">
	        <bean class="org.springframework.aop.support.JdkRegexpMethodPointcut">
	            <property name="pattern" value="mgr.*.*.service" />
	        </bean>
	    </property>
	</bean>

7、监控实体

在实体的persistence.xml文件最前面加入红色语句(必须用JavaMelody1.5及以上),如:

	<persistence-unit name="gxpt-qx-entity" transaction-type="JTA" >
        <provider>net.bull.javamelody.JpaPersistence</provider>
        <jta-data-source>java:/MySqlDS</jta-data-source>
        <properties>
            <!-- <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/> -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.show_sql" value="true" />
        </properties>
    </persistence-unit>

8、查看javaMelody

         访问的目录后加/javamelody ,如http://localhost:8080/javamelody 。

时间: 2024-12-26 19:17:15

Java项目性能监控和调优工具-Javamelody的学习总结的相关文章

JavaMelody 项目性能监控和调优工具

转自 JavaMelody 可以实现对内存.CPU.线程.JDBC 连接数.HTTP 请求执行时间.SQL 执行时间(分析 Top SQL).方法执行时间(分析系统方法性能瓶颈)等等的监控. 配置方式 1. pom.xml(加入依赖包) 1 2 3 4 5 <dependency>     <groupId>net.bull.javamelody</groupId>     <artifactId>javamelody-core</artifactId

Java虚拟机性能监控与调优实战

Java虚拟机的内存结构,区别于侧重于多线程的Java内存模型(Java Memory Model) 但在此之前,我们该思考一下:JVM的内存结构为什么要这样划分? 我认为主要是依据于不同数据的更新频率.访问速度要求.垃圾收集管理由此划分的JVM的五大内存区-- PC寄存器.JVM Stack .Native Method Stack .Java Heap.方法区.共享区 下面主要详细解释一下这五个内存区: 1.PC寄存器 PC寄存器(Program Counter Register,程序计数器

Java生产环境下性能监控与调优详解

第1章 课程介绍(Java秒杀课程老师倾力打造)本章为大家介绍生产环境可能存在的问题和常用的性能监控工具,以及课程能学到什么,课程内容如何安排等,让大家对课程有个全貌的认识,从而更好的学习这门课程.1-1 为什么学习这门课程? 第2章 基于JDK命令行工具的监控本章带大家学习JDK的命令行监控工具的使用,包括jps.jinfo.jstat.jmap.jstack, 并结合MAT实战如何定位内存溢出,实战如何定位死循环和死锁.2-1 JVM的参数类型2-2 查看JVM运行时参数2-3 jstat查

Linux系统CPU的性能监控及调优

前言: 性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢.接口超时,服务器负载高.并发数低,数据库频繁死锁等.尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的臃肿,各种性能问题开始纷至沓来. 在系统层面能够影响应用性能的一般包括三个因素:CPU.内存和IO,今天,我们先谈谈CPU性能的监控以及调优. CPU性能监控 当程序响应变慢的时候,首先使用top.vmstat.ps等命令查看系统的cpu使用率是否有异常,从而可以判断出是否是cpu繁忙造成的性能问题

Tomcat性能监控与调优

tomcat远程debug Tomcat是目前被应用得最多的一款Java Web服务器,很多人都会使用Tomcat来作为项目的服务器.也经常需要在开发的时候对Tomcat进行debug.在本地对Tomcat进行debug相信很多人都会,但如果需要对远程的Tomcat进行debug,相信有部分小伙伴还是没接触过的,而本小节将简单介绍一下如何对Tomcat进行远程debug. Tomcat远程debug是基于 JDWP 协议实现的,关于 JDWP 协议,可参考以下文档: https://www.ib

DB2数据库性能监控和调优实践

1.性能调优概述 性能问题的症状 响应时间慢 吞吐量低 资源占用高(CPU.Memory.I/0等) 数据库角度 数据库逻辑设计 数据库物理设计(存储规划) SQL语句 数据库调优关键 I/O最关键 减少I/O 最大化I/O效率 存储规律,物理设计 CPU两个杀手 表扫描 排序 Memory命中率可能会骗人 SQL是一切问题的根源 2.性能调优步骤 明确问题->收集数据->分析数据->细化.定位问题->优化 3.DB2数据库监控工具-db2pd 3.1.监控工具总结 即时监控工具

MySQL写压力性能监控与调优

写压力调优:数据库的写.写压力性能监控.写压力调优参数 一.关于DB的写 1.数据库是一个写频繁的系统 2.后台写.写缓存 3.commit需要写入 4.写缓存失效或者写满-->写压力陡增-->写占读的带宽 1.BBU失效 2.写入突然增加.cache满 5.日志写入.脏缓冲区写入 二.写压力性能监控 全面剖析写压力:多维度的对写性能进行监控. 1.OS层面的监控:iostat -x [[email protected] mydata]# iostat -x Linux 2.6.32-642.

JVM虚拟机性能监控与调优(JDK命令行、JConsole)

很多资料在介绍JDK命令行工具时并不是在Java8环境下,因此还在使用过时的永久区系列的参数,给一些读者造成困难. Java8使用Metaspace(元空间)代替永久区,对于64位平台,为了压缩JVM对象中的_klass指针的大小,引入了类指针压缩空间(Compressed Class Pointer Space) .关于这点,可以参考博客https://blog.csdn.net/liang0000zai/article/details/51168095. 1. JDK命令行工具 在JDK的开

Tomcat 性能监控及调优

1.性能监控 方式1: /usr/local/tomcat7/conf/tomcat-users.xml 添加如下: <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> &l