`
lzzy_alex
  • 浏览: 29979 次
社区版块
存档分类
最新评论

Java内存设置与监控分析

 
阅读更多

设置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分析,可以帮助检测大对象,分析泄露情况

活动线程
Windows: netstat -ano|find "8080"|find "ESTABLISHED" /c
Linux: netstat -ano|grep "8080"|grep "ESTABLISHED"|wc -l


0
0
分享到:
评论

相关推荐

    Java内存监控工具Java VisualVM

    ### Java内存监控工具Java VisualVM #### 一、概述 Java VisualVM是一款强大的Java应用程序性能分析和诊断工具,主要用于监控和分析Java应用的运行时行为,包括但不限于内存使用情况、线程状态、CPU使用率等关键...

    jProfiler7 java内存分析 linux版本

    本篇文章将详细探讨jProfiler7在Java内存分析上的核心功能、使用方法以及在Linux环境中的配置和应用。 1. **内存分析概述** - 内存分析是识别和解决Java应用程序中的内存泄漏、过度对象创建和内存消耗过高问题的...

    java 内存监控

    Java内存监控是Java应用程序性能优化的关键环节,它可以帮助开发者识别并解决内存泄漏、垃圾收集问题以及潜在的服务器性能瓶颈。本文将深入探讨Java内存监控的相关知识点,并提供实用的命令工具来帮助你查找和解决...

    JAVA内存分析 - V1.0.0.zip

    Java内存分析是Java开发中非常重要的一个环节,它关乎到应用程序的性能和稳定性。"JAVA内存分析 - V1.0.0.zip" 提供了一套工具来帮助开发者深入理解并优化Java应用程序的内存使用情况。这个压缩包包含了两个关键文件...

    java内存泄露定位与分析[整理].pdf

    综上所述,Java内存泄露的定位与分析是一个涉及多方面知识的复杂过程,需要结合代码审查、性能监控和专业工具来找出问题并采取相应的优化措施。通过不断的学习和实践,开发者可以更好地理解和解决这类问题,确保系统...

    jprofiler java内存监控

    **Java内存监控与JProfiler详解** Java程序在运行过程中,内存管理和性能优化是至关重要的环节。JProfiler是一款强大的Java性能分析工具,它提供了全面的内存监控、线程分析以及CPU性能剖析等功能,帮助开发者深入...

    JAVA内存泄漏分析工具

    Java内存泄漏分析是一个关键的系统优化任务,尤其是在大型企业级应用中,长期运行的系统可能会因为内存泄漏导致性能下降甚至服务中断。"JAVA内存泄漏分析工具"正是一款用于解决此类问题的专业工具,它能帮助开发者...

    java内存泄漏分析工具

    本篇将详细探讨Java内存泄漏及其相关的分析工具。 内存泄漏是指程序在申请内存后,无法释放已不再使用的内存空间。在Java中,由于垃圾收集器的存在,程序员通常不必手动管理内存。然而,如果存在某些情况使得对象...

    java实现简单远程监控

    在远程监控场景中,RMI可用于建立客户端与服务器之间的通信,允许客户端发起请求以获取服务器端的监控数据。要使用RMI,你需要定义远程接口、实现该接口的远程对象,以及注册远程对象到RMI注册表。 实现步骤大致...

    Java内存泄露_JVM监控工具介绍

    "Java内存泄露_JVM监控工具介绍" Java内存泄露是Java开发中常见的一种问题,发生内存泄露可能会导致Java应用程序崩溃或性能下降。在Java中,内存泄露的原因非常多样,例如,静态变量、循环引用、数据库连接池、...

    java 内存溢出分析工具 HeapAnalyzer

    HeapAnalyzer是一款Java内存分析工具,由IBM开发,它可以帮助开发者检查和分析Java堆内存的状态,找出可能存在的内存泄漏或者过度占用内存的对象。通过分析heap dump文件,HeapAnalyzer可以展示对象的分布情况,识别...

    Java 服务器信息监控

    其次,内存监控同样关键。Java提供`java.lang.Runtime`类和`java.lang.management.MemoryMXBean`来获取内存信息。`Runtime`类可以提供系统总的内存信息,而`MemoryMXBean`则可以获取堆内存、非堆内存以及垃圾回收器...

    java内存泄露、溢出检查方法和工具

    本文将深入探讨如何检测和分析Java内存泄露与溢出,并介绍一种常用的工具——Memory Analyzer(MAT)。 首先,理解内存泄露的概念至关重要。在Java中,内存泄露通常发生在对象不再被程序使用但仍然保持在内存中,...

    基于Java的内存泄露分析及定位

    Java内存管理是一个关键的议题,...总的来说,理解Java内存管理和垃圾收集机制,以及如何使用工具进行分析和定位,是优化Java应用程序性能、避免内存泄漏的关键。通过有效的内存管理,可以确保程序高效且稳定地运行。

    java内存机制及异常处理

    Java内存监控工具如JConsole、jVisualVM可以帮助开发者检查JVM的内存状态,定位内存泄漏和性能瓶颈。另外,通过`java.lang.management`包提供的API,可以在代码级别实现内存监控。 对于异常处理,Java提供了异常类...

    zabbix监控JAVA 进程 JVM数据统计分析告警监控

    zabbix自动发现JAVA进程,并进行自动添加监控JAVA 进程的JVM数据,统计分析告警监控。 支持多种中间件,tomcat、weblogic、微服务方式部署JAVA应用监控。 自带发现脚本和监控脚本,以及zabbix导入模板。

    Java堆栈内存分析笔记

    堆和栈是Java内存管理的两个主要区域,它们各自承担着不同的职责。本笔记将深入探讨这两个区域的工作原理以及如何进行有效的分析。 首先,我们要理解Java内存的两个主要部分:堆(Heap)和栈(Stack)。堆主要用于...

    ibm HeapAnalyzer java内存分析工具 ha457.jar

    IBM HeapAnalyzer是一款强大的Java内存分析工具,主要用于诊断和解决Java应用程序中的内存泄漏问题。这款工具通过对Java堆内存的深入分析,帮助开发者定位那些占用过多内存的对象,从而优化应用性能。在Java开发过程...

    【转】Java内存泄露_JVM监控工具介绍jstack_jconsole_jinfo_jmap_jdb_jstat

    Java内存泄露是编程中一个严重的问题,它可能导致系统性能下降,甚至系统崩溃。JVM(Java虚拟机)提供了多种监控工具来帮助开发者检测和解决这类问题。本篇将重点介绍几种常用的JVM监控工具,包括jstack、jconsole、...

Global site tag (gtag.js) - Google Analytics