`
greemranqq
  • 浏览: 972140 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

JAVA 应用性能监控基础

阅读更多

一、序言

       这里简单介绍了JAVA 应用程序部署linux 服务器上的一些常用监控信息,虽然现在很多自动化监控的东西,但是一些基本的东西,我们还是需要了解。这里是简单记录一下:

 

 

二、操作过程

       1.我习惯性先看看 CPU 和内存的使用情况,做一个简单的关注

          命令:top 可以关注运行状态

          命令:大写P:按CPU 使用排序,大写M:按内存使用排序,小写c:详细显示应用       

          比如A应用出现

          VIRT:虚拟内存总共2G,RES:物理已经内存占用:1.8G,并且有持续上升趋势,有可能内存溢出

 

        关于JDK 自带命令,可以参考:http://blog.csdn.net/fenglibing/article/details/6411953

 

        2.jstack -l -pid 查看堆栈信息

           当然我习惯性输出到文件:jstack 1234 > jstack_1234.txt 

           一般我用来分析死锁:看看有什么blocked 之类的,如果有就具体分析对象吧

 

        3.查询内存信息 到文件

           jmap -histo > jmap_1234.txt

           

# 会出现类似的东西,这里里面会出现 对象实例个数大小,含义相信都能看懂
# 如果有溢出危险,可以看看是不是有些不应该存在的对象过多,或者泄露~。~
num     #instances         #bytes  class name
----------------------------------------------
   1:       5639055      314750880  [C
   2:       5090750      122178000  java.lang.String
   3:        634655       50563800  [B
   4:        132871       49959496  com.taobao.api.domain.Trade
   5:        535513       30530896  [Ljava.lang.Object;
   6:        457581       27420936  [I
   7:        421408       23598848  com.taobao.api.domain.MsgList

#...
# 上面关注的对象,发现订单Trade 占 49959496/8/1024/2024 = 5.95 
# 至于合理性,要根据自己系统进行判断,如果是内存不够,需要调大JVM内存
# jmap -histo:live 这是存活的对象 

# 当然如果你应用挂了,你可以jmap -dump   看下内存快照 
# jmap -head 看一下当前空间的使用情况
# 正常情况不建议这么做,生成快照的时候应用会stop 一下!

 

     4.关注GC信息

     jstat -gcutil > jstat_1234.txt

     

# 会出现类似以下信息
S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
 38.69   0.00  90.60  79.89  59.31 150460 1693.925   609  137.180 1831.105

# 我喜欢主要关注FGC 的次数:609 当然这个要配合运行时间去看,你可以5-10分#钟运行几次,看看FGC 的增长率,快了肯定的调节

#当然你还可以观察新生代 、老年代、永久代详细信息,具体参数看上面的链接

 

小结:

     1.虽然很多大部分情况下,公司有运维或者专门的监控工具做这些了,但是了解一下还是有好处的,当然基本的得清楚JVM 的一些分布、原理基础。

     2.关于一些常用调优手段,有机会结合实际场景 再分享吧,脱离场景的 都感觉 不太好。

     3.也可以用远程的一些工具去操作这些

    

分享到:
评论

相关推荐

    Java应用性能监控最佳实践

    针对复杂的java应用环境进行全方面的性能监控与管理,文章中引用了ca wily apm解决方案,阐述了如何利用外部工具帮助优化java应用系统的性能,确保用户使用体验,针对weblogic,websphere,jboss等主流java中间件...

    Java应用性能远程监控系统(使用CS架构)适用于监控所有Java应用.zip

    在Java应用性能监控场景下,客户端通常是指安装在运行Java应用的服务器或设备上的轻量级代理(Agent),而服务器端则是集中管理这些代理并处理收集到的数据的中心平台。客户端代理负责监视应用程序的内存使用、CPU...

    java虚拟机性能监控

    在Java虚拟机的上下文中,性能监控主要关注的是如何利用各种工具和技术来监控和改善JVM及其上运行的应用程序的性能。 ##### 目标: - **保持和管理系统健康**:通过持续监控系统的各项指标,可以及时发现潜在问题,...

    Java性能监控工具

    Java性能监控是优化Java应用程序的关键环节,它可以帮助开发者识别并解决性能瓶颈,确保程序的高效稳定运行。在Java中,有一些内置的工具可以用来监控和分析性能,包括内存使用、垃圾回收等方面。 首先,`jps`命令...

    Tomcat和java应用性能监控脚本

    脚本运行在linux环境,执行后显示系统前5个cpu占用最大的java程序,并且把里面的异常信息打印出来

    JavaMelody JAVA Web项目服务器性能监控工具

    JavaMelody是一款强大的JAVA Web项目服务器性能监控工具,它能够实时、全面地监控应用程序的运行状态,帮助开发者和运维人员了解系统性能瓶颈,及时发现并解决问题。通过在Java Web应用中简单集成,JavaMelody就能...

    Java应用性能监控和调优(思维导图)

    将视频整合成为思维导图,看着方便,节省时间。 内容包括:(1)基于JDK命令后工具的监控(2)基于Btrace的监控调试...(4)java代码层优化(5)JVM层GC调优(6)基于JVisualVM的可视化监控(7)tomcat性能监控和调优

    Java自带的性能监控工具使用简介

    Java 自带的性能监控工具包括 VisualVM 和 JConsole,都是功能强大的性能监控工具,能够帮助开发者快速监控和优化 Java 应用程序的性能。 Conclusion Java 自带的性能监控工具使用简介,包括 VisualVM 和 JConsole...

    监控JAVA应用的好工具javamelody

    Rrdtool是一种高效的数据存储方案,特别适合于长期保存时间序列数据,如性能监控数据。jrobin库使得JavaMelody能够在不依赖外部软件的情况下,本地持久化监控数据,方便后期分析和对比。 要开始使用JavaMelody,...

    java做的监控应用实例

    1. **JVM监控**:Java虚拟机(JVM)是Java应用程序的基础,它负责执行字节码。通过JMX(Java Management Extensions)可以监控JVM的内存使用、线程状态、类加载、垃圾收集等信息。例如,`VisualVM`和`JConsole`是两...

    JavaMelody应用监控使用指南

    总之,JavaMelody是一款强大的监控工具,它简化了Java应用和服务器的性能监控,通过直观的图表帮助开发者和运维人员快速定位问题,提升系统的稳定性和效率。只需几步简单的配置,您就可以享受到JavaMelody带来的便利...

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

    某课教程++++++Java生产环境下性能监控与调优详解,精品。

    WY一款适用于Java应用的性能监控系统

    GC(Garbage Collection)监控是Java应用性能优化的核心。WY系统提供GC日志分析,展示不同GC类型的执行时间、次数和暂停时间,有助于确定是否需要调整垃圾回收策略以减少应用停顿时间。 类加载监控则关注于类的加载...

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

    本课程将为你讲解如何在生产环境下对Java应用做性能监控与调优;通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出、cpu负载飙高等问题;学会线上代码调试,Tomcat、Nginx,GC调优等手段; 读...

    javamelody性能监控jar和war

    总的来说,JavaMelody是一个强大且易于使用的Java Web应用性能监控工具,能够为开发者和运维团队提供宝贵的洞察力,确保应用的稳定性和高效运行。通过深入理解和有效利用JavaMelody,我们可以及时发现和解决潜在的...

    Java应用监控与管理:构建高效运维体系

    通过选择合适的监控指标、使用有效的监控工具、实施日志管理和性能调优、以及构建自动化运维体系,可以显著提高Java应用的稳定性和性能。本文详细介绍了Java应用监控和管理的各个方面,希望能够帮助读者构建一个高效...

    Java性能监控工具Jprofiler4.3.2

    7. **远程连接**:除了本地应用,JProfiler还能远程连接到其他运行Java应用的服务器,进行实时性能监控,这对于分布式系统的调试非常方便。 8. **快照对比**:你可以创建性能快照,并进行对比,观察不同时间点或...

    JavaMelody开源系统性能监控

    总的来说,JavaMelody是一款免费且功能齐全的Java应用性能监控解决方案,能够帮助开发者和运维团队提高故障排查效率,优化系统性能,是Java开发过程中不可或缺的辅助工具。通过持续监控和分析,可以及时发现并解决...

Global site tag (gtag.js) - Google Analytics