设置Java运行时内存(tomcat为例)
JAVA_OPTS="-server -Xms2048M -Xmx2048M -Xmn512M -XX:PermSize=256M -XX:MaxPermSize=256M";
server模式,堆内存2G,新生代512MB,永久代256MB,收集器由jvm自动选择。
各区域大小应根据应用的实际情况调整,推荐参数为:不配置。
内存分配情况查看
查看堆内存分配情况:jmap -heap pid
活动实例采集:jmap–histo:live pid
内存回收情况( jstat -gcutil pid 3000 3)
pid : 608 每3秒采集一次,共采集3次
gcutil 可观察jvm内存回收情况,s0,s1为 from/to space空间,e表示eden区占用率,o为老年区占用率,p为永久区占用率,ygc表示新生代gc次数,fgc表示full gc次数。
频繁的 ygc,特别是 fgc 将很可能导致CPU高占用现象,这时需要结合以下的 thread dump 或堆转储找出原因。
高占用CPU线程
使用工具 top -H (Linux) ProcessExplorer (Windows),找出高占线程ID
转十六进制后,在下面的 thread_dump 中查找
Thread dump
1. Visual VM 下的 ThreadDump
2. kill -3 java_pid (linux )或 ctrl + break ( windows )
3. jstack pid > thread_dump.txt
dump 出系统正在运行的线程信息,是定位源码位置的关键手段
Heap dump
jmap -dump:format=b,file=m.hprof pid
生成堆转储文件,再结合mat分析,可以帮助检测大对象,分析泄露情况
jmap -dump:format=b,file=m.hprof pid
生成堆转储文件,再结合mat分析,可以帮助检测大对象,分析泄露情况
活动线程
Windows: netstat -ano|find "8080"|find "ESTABLISHED" /c
Linux: netstat -ano|grep "8080"|grep "ESTABLISHED"|wc -l
相关推荐
java 内存监控与分析命令,用于常见服务器内存溢出查找错误!
zabbix自动发现JAVA进程,并进行自动添加监控JAVA 进程的JVM数据,统计分析告警监控。 支持多种中间件,tomcat、weblogic、微服务方式部署JAVA应用监控。 自带发现脚本和监控脚本,以及zabbix导入模板。
java内存分析工具介绍,分析内存泄漏及监控之。
Java生产环境下性能监控与调优详解视频教程 jstat查看JVM统计信息 jstack与线程的状态 MAT 分析内存溢出的方法 可视化工具分析GC日志 通过这套视频学习如何在生产环境下进行性能监控与调优。 视频在百度网盘中...
Java VisualVM是一个多线程的监控分析工具,VisualVM 是一款免费的\集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。功能包括内存分析、快照功能、转储功能...
java 性能监控分析,内存监控,内存使用,垃圾回收
Java生产环境下性能监控与调优详解 本课程将为你讲解如何在生产环境下对Java应用做性能监控与调优;通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出、cpu负载飙高等问题;学会线上代码调试...
VisualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力。所有这些都是免费的!它囊括的命令行工具包括jps,jstat,jmap,jinfo,jstack,JConsole,这些工具与JDK的标准版本是一致的。 jinfo:...
统计、分析之后的数据封装为用于被监控数据对象,向各种渠道的数据观察者发送监控数据的变更通知 定时保存jstat,jstack结果,以及其他有后续分析价值监控数据,使虚拟机的运行现场可以回放。 同时从多个远程...
java 虚拟机监控,构建本地监控远程java虚拟机的visualvm应用,更加直观的分析java 应用的CPU、内存、堆/栈、线程等情况
使用 strace 命令来监控内存分配,找出OOM的原因 由于使用 Netty 导致的,那错误日志里可能会出现 OutOfDirectMemoryError 错误 如果直接是 DirectByteBuffer,那会报 OutOfMemoryError Direct buffer memory
Android平台下井下安全监控系统存在内存泄露问题。经过分析认为Java内存泄露是破坏系统的主要因素。文章着重介绍了在Android平台下开发应用程序中,内存泄露出现的原因及相应的解决办法,并通过示例程序进行说明。
最新的JProfiler11,它是针对Java EE和Java SE应用程序开发的监控工具,可以集成到 IntelliJ IDEA 中对CPU、内存分析、线程、堆栈等进行在线分析
软件主要功能如下: (1)监控堆内存的占用情况和创建对象实例的数量,找出内存泄露的原因; (2)监控占用CPU较多的方法; (3)监控线程的阻塞和死亡; (4)监控GC的耗时;
基于Java的CS远程监控系统软件是一种用于监控和管理...通过以上设计与实现,基于Java的CS远程监控系统软件能够帮助管理员实现对大量计算机设备的实时监控和远程管理,提高管理效率和响应速度,保障系统安全和稳定运行。
WY(Java应用监控系统)是一款基于JDK8制作,适用于Java应用,具有堆内存监控、方法区监控、GC监控、类加载监控、类编译监控与线程监控功能的在线监控系统。
中Java应用内存泄漏的检测,通过监控集合类对象的内存消耗和集合内元素的 使用情况,得出对象内存泄漏的可能性大小,量化对象内存泄漏的风险。检测 系统首先收集垃圾回收事件后的应用内存数据,确定进行...
VisualVM是一个java应用程序性能分析和运行监控工具,可以监控、分析线程信息,其默认监视内存和CPU,常用于监测、控制java应用程序横跨整个网络的情况。 2.YourKit YourKit是一个java性能分析工具,使用YourKit...
java内存区域与内存溢出处理 虚拟机栈和本地方法栈区别 对象定位访问 垃圾收集器GC管理 虚拟机GC垃圾回收收集算法(内存回收方法论) 虚拟机GC垃圾回收收集器(内存回收具体实现) 对象内存分配 虚拟机性能监控与故障...