一、序言
这里简单介绍了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应用环境进行全方面的性能监控与管理,文章中引用了ca wily apm解决方案,阐述了如何利用外部工具帮助优化java应用系统的性能,确保用户使用体验,针对weblogic,websphere,jboss等主流java中间件...
脚本运行在linux环境,执行后显示系统前5个cpu占用最大的java程序,并且把里面的异常信息打印出来
将视频整合成为思维导图,看着方便,节省时间。 内容包括:(1)基于JDK命令后工具的监控(2)基于Btrace的监控调试...(4)java代码层优化(5)JVM层GC调优(6)基于JVisualVM的可视化监控(7)tomcat性能监控和调优
某课教程++++++Java生产环境下性能监控与调优详解,精品。
本课程将为你讲解如何在生产环境下对Java应用做性能监控与调优;通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出、cpu负载飙高等问题;学会线上代码调试,Tomcat、Nginx,GC调优等手段; 读...
NULL 博文链接:https://xjg396.iteye.com/blog/1559978
基于Web的Java应用性能监测系统设计与实现.pdf
WY(Java应用监控系统)是一款基于JDK8制作,适用于Java应用,具有堆内存监控、方法区监控、GC监控、类加载监控、类编译监控与线程监控功能的在线监控系统。
java程序性能优化Java是目前应用最为广泛的软件开发平台,学习针对Java程序的优化方法有重要的现实意义。《Java程序性能优化:让你的Java程序更快、更稳定》以Java性能调优为主线,系统地阐述了与Java性能优化相关的...
快应用开发
一个针对高并发、低延迟应用设计的高性能 Java 性能监控和统计工具.zip,高性能Java APM。由asm提供动力。试试看。测试它。如果你感觉好些了,就用它。
MyPerf4J 一个针对高并发、低延迟应用设计的高性能 Java 性能监控和统计工具
本文首先介绍了负载测试、基于APM工具的应用程序和服务器监控,随后介绍了编写高性能Java代码的一些最佳实践。最后研究了JVM特定的调优技巧、数据库端的优化和架构方面的调整。
《Java程序性能优化:让你的Java程序更快、更稳定》以Java性能调优为主线,系统地阐述了与Java性能优化相关...专 注于Java应用程序的优化方法、技巧和思想,深入剖析软件设计层面、代码层面、JVM虚拟机层面的优化方法。
java的分析工具有:1.VisualVM,java应用程序性能分析和运行监控工具;2.YourKit,java性能分析工具;3.Jetm,java程序执行时间测量工具;4.Arthas,java诊断工具; java的分析工具有以下几种 1.VisualVM ...
JProfiler 是一款高性能、无侵入的 Java 性能监控神器,可以快速启动并提供丰富的性能分析功能。它适用于各种 Java 应用程序,包括服务化架构下的应用程序。JProfiler 可以帮助您监控服务的运行情况,例如当前 QPS、...
JavaMelody:JavaEE应用性能监测和分析工具
针对以上开发中的烦恼,今天我们介绍一个针对高并发、低延迟应用设计的高性能 Java 性能监控和统计工具——MyPerf4J。
SkyWalking 是一款开源的应用性能监控系统,包括指标监控,分布式追踪,分布式系统性能诊断。