0 0

jvm初始堆内存完成够用且线程数没有增加,为什么内存还是不断上升?5

初始堆内存分了256M,现在只用了70m~160m之间。线程数一直在35~40个之间。
为什么我用top查看到内存却总是在不断的上升呢?
由原来的302m现在上升到了320m了,请问这是为什么?

问题补充:to:simingxiong 我是用visualVM看的。

问题补充:怎么上传图片?我想截图给您看一下

问题补充:补充一下:top 查看的是java进程。由原来的302m到了320m.用visualVM看到的内存正常回收,线程数也无明显变化。所以我认为堆内存和栈内存都没有明显增加为啥jvm还是一点一点的上升呢?隔断时间上升1M

问题补充:运行了蛮久的(10个小时)。然后才能发现内存在缓慢上升。因为这段观突然时间内初始堆够用,所以不需要达到最大堆。所以我觉得不是堆内存泄露。而是非堆内存在缓慢上升,问题是什么导致非堆内存上升呢?线程数没有增多,每个线程栈分配了1M内存,说明栈内存没有增加。那么除了堆内存、栈内存外,还有什么内存在增加呢?

问题补充:to 502220545: 使用的架构是nginx+tomcat+mysql.使用了ehcache做缓存,自定义了页面静态化类。为了提高页面访问速度,数据库操作都是通过新建线程异步操作的。

3个答案 按时间排序 按投票排序

0 0

是不是用了类似NIO这种啊  好像还有一个叫直接内存的东东 具体不太知道了

2013年1月05日 09:55
0 0

感觉还是内存泄露了

2013年1月04日 16:44
0 0

系统内存上升不一定就是由JVM导致的,建议还是用专门的JVM内存查看工具监控JVM内存情况。推荐一些工具例如VisualVM或者JProfile

2013年1月03日 13:36

相关推荐

    JVM初始分配的内存.doc JVM初始分配的内存.doc

    - **默认值**:默认情况下,JVM的初始堆内存大小为物理内存的1/64。 - **意义**:合理设置初始堆内存大小有助于优化JVM的启动时间,并且可以避免由于初始堆内存过小导致的频繁垃圾回收问题。 ##### 2. `-Xmx`: ...

    JVM堆内存溢出后,其他线程是否可继续工作的问题解析

    JVM堆内存溢出后,其他线程是否可继续工作的问题解析 JVM堆内存溢出是Java开发中常见的问题之一,当堆内存溢出时,其他线程是否可继续工作?这是一道经典的面试题。通过对JVM堆内存溢出的分析,我们可以了解到当一...

    vmmap 观察jvm内存 监控jvm jvm线程

    在Java开发过程中,对JVM(Java虚拟机)的监控是至关重要的,它能帮助我们了解应用程序的运行状态,优化性能,以及及时发现并解决内存泄漏等问题。`vmmap`工具是Mac OS X系统中一个强大的内存分析工具,它可以用来...

    java获得jvm内存大小

    在启动Java应用程序时,可以通过命令行参数来设置JVM的初始堆内存和最大堆内存。常用的参数有: - `-Xms<size>`:设置初始堆内存大小。例如,`-Xms256M`表示初始堆内存为256MB。 - `-Xmx<size>`:设置最大堆内存...

    JVM内存溢出问题解析

    在 JVM 中,如果 98%的时间是用于 GC 且可用的 Heap size 不足 2%的时候将抛出内存溢出异常信息。Heap Size 最大不要超过可用物理内存的 80%,一般的要将 Xmx 和 Xms 设置相同避免每次 GC 后都要调整虚拟机堆的...

    java 查看JVM中所有的线程的活动状况

    在Java编程环境中,了解JVM(Java虚拟机)中所有线程的活动状态对于调试多线程程序至关重要。本文将详细讲解如何查看JVM中的线程活动情况,并提供相关示例代码。 首先,Java提供了`java.lang.management....

    WAS性能调优对jvm、线程数、ORB大小的配置

    2. **JVM内存参数设置**:包括初始堆大小(-Xms)、最大堆大小(-Xmx)、新生代大小(-XX:NewSize)等。合理的设置可以避免频繁的垃圾回收,减少应用暂停时间,并防止内存溢出。 3. **类加载机制**:理解并调整类加载器的...

    JVM内存空间分配笔记

    ### JVM内存空间分配详解 #### 一、JVM内存模型概览 JVM(Java虚拟机)内存模型主要由以下几个部分组成:程序计数器、Java虚拟机栈、本地方法栈、Java堆以及方法区(在JDK 8之后称为元空间)。下面将对这几个部分...

    JVM内存配置优化

    可以通过调整JVM参数`-Xms`和`-Xmx`来增加堆内存的初始值和最大值。例如,设置`-Xms2048m -Xmx2048m`可以将堆内存的最小和最大值都设置为2GB。 - **JVM默认堆内存配置**:JVM默认情况下,最小堆内存为物理内存的1...

    idea插件JVM内存工具JProfiler11

    5. **JVM配置调整**:JProfiler11还可以提供JVM参数建议,帮助开发者正确设置JVM初始堆大小、最大堆大小、内存池等关键参数,确保应用程序稳定运行。 在实际使用中,JProfiler11的详细报告和可视化界面使得问题定位...

    java虚拟机jvm及Tomcat中的jvm有关内存的设置与调优

    1. **-Xms**:设置JVM初始堆内存大小。保持-Xms和-Xmx相等,有助于减少GC停顿时间,尤其在Server模式下更为重要。 2. **-Xmx**:设定JVM最大堆内存大小,不应超过物理内存的限制,以防内存溢出。 3. **-Xmn**:...

    JVM+多线程.pdf

    ### JVM内存模型和垃圾回收 #### JVM内存模型 JVM内存模型指的是Java虚拟机中内存的布局结构,它规定了Java程序在运行时数据存储区域的划分。JVM内存模型主要包括以下几个部分: - **堆(Heap)**:存放对象实例...

    Sun JVM原理与内存管理

    #### 二、为什么学习GC? - **性能瓶颈**:随着应用规模的增长,GC可能成为限制应用性能和并发能力的主要因素之一。 - **避免OOM**:合理使用GC可以有效防止出现“Out of Memory Error”(OOM)错误。 - **提高应用...

    jvm 内存分析文档

    【Jvm 内存分析文档】 Java 虚拟机(JVM)是Java程序的核心运行环境,它负责管理和执行字节码。JVM内存管理主要包括内存结构、内存分配以及垃圾回收(GC)等方面。了解这些知识对于优化Java应用程序的性能至关重要...

    JVM内存参数详解以及配置调优

    JVM 使用-XX:PermSize 设置非堆内存初始值,默认是物理内存的 1/64;由XX:MaxPermSize 设置最大非堆内存的大小,默认是物理内存的 1/4。 JVM 内存限制 JVM 内存限制是指 JVM 对于内存的最大限制。服务器一般设置-...

    JVM内存模型

    JVM内存模型是Java虚拟机(JVM)中的一种内存管理机制,它将内存区分为永久区内存(Permanent space)和堆内存(heap space)两大块。永久区内存用于存放加载的Class类级对象,如class本身、method、field等等,而堆...

    jvm内存监控工具使用

    JVM 的内存管理是性能优化的关键,尤其是在高并发环境下,合理的内存配置和监控显得尤为重要。本文将深入探讨 VisualVM 及其集成的一系列命令行工具,包括 jps、jstat、jmap、jinfo、jstack 和 JConsole,帮助读者...

    JVM-内存管理 2012-12.pdf

    首先,JVM内存管理涉及的内存空间主要分为方法区(Method Area)、堆(Heap)、本地方法栈(Native Method Stacks)、程序计数器(Program Counter)和JVM方法栈(JVM Stack)。其中,方法区和堆是由所有线程共享的...

    (主讲视频)JVM原理、内存模型、性能调优

    - **堆内存大小**:通过设置`-Xms`和`-Xmx`来控制初始堆内存和最大堆内存的大小。 - **新生代比例**:通过`-XX:NewRatio`设置老年代与新生代的比例。 - **垃圾回收算法选择**:根据应用特点选择不同的垃圾回收器...

Global site tag (gtag.js) - Google Analytics