java-jboss 设置jvm,内存占用过多情况

问题描述

jboss 设置jvm,内存占用过多情况

JAVA_OPTS="-Xss256k -Xms4000m -Xmx8000m -Xmn2000m -XX:MaxNewSize=512m -XX:MaxPermSize=512M -XX:+UseParallelGC -XX:ParallelGCThreads=16
-XX:-UseGCOverheadLimit -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/corefile/ -XX:+UseParallelOldGC
-Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"

这个是我jboss7.1.1 中 bin 目录下  standalone.conf  文件中的配置,机器为32G内存,现在这个配置用top命令查看系统内存一直在增加,在超过最高限之后cpu使用率就会增加很多,然后jboss就会卡死了。

    有没有jboss优化的大神碰到过这种情况,谢谢!
时间: 2024-09-24 14:15:40

java-jboss 设置jvm,内存占用过多情况的相关文章

eclipse中设置JVM内存

        初学者非常容易混淆eclipse.ini文件的作用,这个文件 是 eclipse 软件的 配置文件,配置了eclipse 启动,eclipse是用Java写的,只不过用的IBM自己的SWT (Standard Widget Toolkit是一个开源的GUI编程框架,与AWT/Swing有相似的用处而已),这里设置的最小内存和最大内存是留给启动eclipse程序的那个虚拟机使用的,我们要修改eclipse中java程序的JVM内存大小这里设置是不起作用的. 以下提供两种方法: 一.

Java虚拟机:JVM内存分代策略

Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代.老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略. 为什么要分代? 堆内存是虚拟机管理的内存中最大的一块,也是垃圾回收最频繁的一块区域,我们程序所有的对象实例都存放在堆内存中.给堆内存分代是为了提高对象内存分配和垃圾回收的效率.试想一下,如果堆内存没有区域划分,所有的新创建的对象和生命周期很长的对象放在一起,随着程序的执行,堆内存需要频繁进行垃圾收集,而每次回收都要遍历所有的对象,遍历这些对象所花费

编写Java代码制造一个内存溢出的情况_java

 这将会是一篇比较邪恶的文章,当你想在某个人的生活中制造悲剧时你可能会去google搜索它.在Java的世界里,内存溢出仅仅只是你在这种情况下可能会引入的一种bug.你的受害者会在办公室里度过几天甚至是几周的不眠之夜. 在这篇文章中我将会介绍两种溢出方式,它们都是比较容易理解和重现的.并且它们都是来源现实项目的案例研究,但是为了让你清晰地掌握,我把它们简化了. 不过放心,在我们遇到和解决了很过溢出bug之后,类似的案例将会比你想象得更加普遍. 先来一个进入状态的,在使用HashSet/HashM

JVM内存区域与内存溢出异常

Java虚拟机在执行java程序时会把它所管理的内存会分为若干个不同的数据区域,不同的区域在内存不足时会抛出不同的异常. >>运行时数据区域的划分 (1)程序计数器 程序计数器(Program Counter Register)是一块比较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器: PCR为线程私有内存,程序计数器是唯一一个在Java虚拟机规范中没有规定任何OOM情况的区域. (2)方法区方法区(Method Area)与Java堆一样,是各个线程共享的内存区域,它用于存储已

服务器java.lang.OutOfMemoryError: allocLargeArray内存溢出的解决

今天一个web服务器不工作了,查看日志.tomcat报出如下信息: Caused by: java.lang.OutOfMemoryError: allocLargeArray - Object size: 80040, Num elements: 40010 以上日志信息基本的意思是程序要分配一个大小为 80040字节的数组(在JVM中数组也是对象,也是在heap中分配的),40010是指数组元素的多少.但是分配这个数组的时候, heap没有可用的空间了. 针对以上情况,解决办法如下: A:调

最简单例子图解JVM内存分配和回收

原文链接:最简单例子图解JVM内存分配和回收 一.简介 JVM采用分代垃圾回收.在JVM的内存空间中把堆空间分为年老代和年轻代.将大量(据说是90%以上)创建了没多久就会消亡的对象存储在年轻代,而年老代中存放生命周期长久的实例对象.年轻代中又被分为Eden区(圣经中的伊甸园).和两个Survivor区.新的对象分配是首先放在Eden区,Survivor区作为Eden区和Old区的缓冲,在Survivor区的对象经历若干次收集仍然存活的,就会被转移到年老区.   简单讲,就是生命期短的对象放在一起

服务器内存占用过高如何解决?

a. 首先通过http://www.aliyun.com/zixun/aggregation/11435.html">任务管理器进行进程排序,查找占用内存较大的程序进程.一般占用内存较大的进程有W3WP.sqlserver.mysqld-nt.exe b. 站点进程w3wp 可以在cmd命令行中通过 iisapp 命令来对应是那个网站占用内存较大.可以通过设置回收时间.内存最大使用值或共用进程池来减少内存的占用,但是如果要保证网站的访问质量,还是建议升级至更高型号来解决. c. 数据库 s

Java虚拟机JVM内存分区及代码执行机制

1.  JVM体系结构   图1 JVM体系结构        方法区:存放JVM加载的类型信息.包括: 类型基本信息,常量池,字段信息,方法信息,类变量,指向ClassLoader的引用,Class类的引用,方法表等. (对应JVM内存配置中的-PermSize等)    java堆:程序中创建的类的实例和数组,包括class对象和exception对象,存放在堆里面.堆中除了存储对象的实例数据外,还要存储该对象指向方法区中类型信息的指针. (JVM中所有的线程共享堆空间,对应JVM内存配置中

Java程序内存分析:使用mat工具分析内存占用

    MAT 不是一个万能工具,它并不能处理所有类型的堆存储文件.但是比较主流的厂家和格式,例如 Sun, HP, SAP 所采用的 HPROF 二进制堆存储文件,以及 IBM 的 PHD 堆存储文件等都能被很好的解析.下面来看看要怎么做呢,也许对你有用.官方文档:http://help.eclipse.org/luna/index.jsp?topic=/org.eclipse.mat.ui.help/welcome.html 造成OutOfMemoryError原因一般有2种: 1.内存泄露