0 0

tomcat内存分析疑虑10

先说一下现象

公司服务器A,4G物理内存,2G SWAP 空间,跑了10个tomcat,一个月前一直运行稳定(swap空闲空间一直稳定在500M以上),突然从上个月初开始,swap持续缓慢下降,期间各个tomcat中没有任何内存溢出的错误。

top 按物理内存排序见附件


不知道哪位大牛可否能从这些信息中给我分析分析。帮忙解答几个问题:

1、是否存在内存泄露?

2、除了增加内存或者移除部分tomcat外是否还有其他方法能解决swap持续下降?

注明:

1、物理内存占用200M以上的tomcat都设置了如下参数(其它tomcat 没进行设置):

-Xms512m -Xmx512m -XX:NewSize=64m -XX:MaxNewSize=64m -XX:SurvivorRatio=10 -XX:MaxPermSize=300m

2、近2个月服务器只改动过2个项目,此2项目物理内存占用都不大,而且项目升级早在swap开始下降时间之前好几周。


3、进1个月整个系统业务量没有增加。

 

以下是我采用jdk自带的工具进行的一些分析:
对排名前三采用jdk自带的jstat进行分析,见附件。
另外通过jmap+mat对 物理内存占用最大的2个进行分析见附件。

BTW:iteye最近问答模块变化很大,吸收了很多新东西,但是有个地方希望改进,图片怎么还得上传附件呢?
2013年6月03日 23:21
  • 大小: 112.4 KB
  • 大小: 74.6 KB
  • 大小: 103.1 KB
  • 大小: 82.3 KB
  • 大小: 41.9 KB

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

0 0

有几个方法都可以尝试下:
   1、重新调整tomcat的参数(物理内存占用200M以上的)
    JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m"    把内存下限的值调整到256m试试。
   看是否问题解决。如果不能解决,
   2、采用集群方式。
   3、增加硬件。
  

2013年6月05日 16:35
0 0

Xmx512m 10个tomcat,那就是5G的内存,加上操作系统,把你的物理内存吃的干干净净,你的机器是在满负荷状态,任何的变化都会引起问题,建议减小tomcat的内存配置,每个tomcat 400M一下,这样会大大增加你的系统性能,如果出现OutOfMemory了,就说明这个机器真的满足不了你的应用。
为啥硬件条件这么苛刻呢,现在加内存加机器的费用已经很小了,一次当机带来的损失远远大于加硬件的费用吧!

2013年6月05日 09:58
0 0

4G内存也敢跑10个tomcat,只是swap慢慢满起来,说明你们业务量不大,运气也不错。

稍微请求大一点的早就纷纷OutOfMemory了

请每个项目都做一下容量规划  再设置参数 

2013年6月04日 20:53

相关推荐

    查看Tomcat内存文件

    这是一个查看Tomcat内存的文件。放在应用工程中,直接访问就可以。 个人感觉这是一个非常有用的文件。

    修改tomcat内存大小.txt

    ### 修改Tomcat内存大小 在部署Java Web应用时,经常需要根据实际运行需求调整Tomcat服务器的内存配置。本文将详细介绍如何修改Tomcat的内存大小,包括常用的内存参数及其意义,并提供具体的设置方法。 #### 一、...

    Tomcat 修改内存大小

    Tomcat 修改内存大小 Tomcat 是一个流行的基于 Java 的 Web 应用服务器,为了确保 Tomcat 的稳定运行,需要根据实际情况调整 Tomcat 的内存大小。下面将介绍如何修改 Tomcat 的内存大小,在 Windows 和 Linux 两个...

    TOMCAT内存溢出之解决方法

    本文将详细介绍Tomcat内存溢出之解决方法,包括问题分析、解决方法和结论。 问题分析: Tomcat内存溢出是由于JVM的虚拟内存默认为128M,当超过这个值时就把先前占用的内存释放,而导致出现HTTP500的错误。当用户...

    Tomcat内存溢出的三种情况及解决办法分析

    在生产环境中tomcat内存设置不好很容易出现内存溢出。造成内存原因是不一样的,当然处理方式也不一样。本文就介绍了Tomcat内存溢出的三种情况及解决办法分析

    监控tomcat内存使用情况

    监控Tomcat内存使用情况是确保应用稳定运行的关键环节。Tomcat作为一款广泛应用的Java ...通过理解和利用Tomcat提供的管理工具,以及第三方的内存分析工具,我们可以有效地管理JVM内存,提升应用的稳定性和效率。

    TOMCAT内存大小调整

    "TOMCAT内存大小调整" TOMCAT内存大小调整是指在使用Java程序从数据库中查询大量数据或应用服务器(如Tomcat、JBoss、WebLogic)加载jar包时,出现java.lang.OutOfMemoryError异常的解决方法。这种异常主要是由于...

    Tomcat内存设置详解

    ### Tomcat内存设置详解 #### 引言 在构建高性能且稳定的Web应用时,合理配置Tomcat内存参数是至关重要的一步。Tomcat作为一款广泛使用的开源应用服务器,其性能受到诸多因素的影响,其中内存配置尤为关键。正确的...

    tomcat内存泄漏备份方法

    以下是对“tomcat内存泄漏备份方法”的详细解析。 1. **内存泄漏的理解** 内存泄漏是指程序在申请内存后,无法释放已不再使用的内存空间。在Tomcat中,如果长时间运行的应用不断积累不再使用的对象,就会导致内存...

    解决tomcat内存溢出的配置方法

    4. **监控和分析**:使用JMX(Java Management Extensions)或者第三方工具(如VisualVM,JProfiler)实时监控Tomcat的内存使用情况,帮助找出内存泄露的源头。此外,JVM的堆转储(Heap Dump)文件也能提供详细的...

    tomcat内存监测工具probe。

    可以监测tomcat设置的内存是否生效,监测当前使用的内存和剩余内存,监测当前在线用户量。不错的工具,作为一个tomcat的web项目运行,不需要额外安装插件和程序。登录用户直接使用tomcat的用户,请有conf\tomcat_...

    修改 TOMCAT 内存 的 方法 有图 有真相

    **修改TOMCAT内存的方法详解** Apache Tomcat是一款流行的开源Java Servlet容器,它用于部署和运行Java Web应用程序。在处理大型或复杂应用时,可能需要调整Tomcat的内存配置以优化性能。本文将详细介绍如何在不同...

    Eclipse + Tomcat 内存溢出参数设置

    ### Eclipse + Tomcat 内存溢出参数设置详解 在Java开发过程中,特别是在使用Eclipse作为集成开发环境(IDE)并结合Apache Tomcat服务器进行Web应用开发时,经常会遇到内存溢出的问题。这类问题通常表现为应用程序...

    tomcat内存配置

    在探讨Tomcat服务器的内存配置时,我们首先要明确Tomcat服务器的基本概念以及它在Java Web应用中的作用。Tomcat是一款开源的Servlet容器,主要用于运行基于Java的Web应用程序。通过合理配置Tomcat的内存参数,可以...

Global site tag (gtag.js) - Google Analytics