(转载)PermGen space 溢出 使用jstat查看 Permsize 占用情况 并设置 PermSize和MaxPermSize
来源:互联网 发布:seo云优化是什么意思 编辑:程序博客网 时间:2024/04/29 17:15
网站以前经常java.lang.OutOfMemoryError,也没仔细去查看到底是哪里出了问题,昨晚又出现这个问题
了,今天就仔细查找了下资料,在这里总结下,如有不正确的地方,非常欢迎各位指出。
以前对java.lang.OutOfMemoryError的概念,只局限于jvm内存溢出了,
今天才发现java.lang.OutOfMemoryError 出现时,有多种情况,比如:PermGen space ,Java heap space 。
我现在遇到的是java.lang.OutOfMemoryError: PermGen space ,查了下资料,一般的说法是内存的永久保
存区域溢出了,永久保存区域是存放class信息和meta信息
的,分配了后,jvm是不会去回收的。必须让jvm分配更多的permsize,才能解决这个问题。
问题来了,我的应用这个permsize一般占用多少呢? 我该在catalina.sh或catalina.bat里面给这个值设置多少呢?
有人说用jconsole或其他内存监控程序来查看这些数据,但是我不想这么麻烦,要配置参数,监听端口什么的,因为在
Qieqie的一个回帖里面,他提到可以用命令查看permsize的占用情况(http://www.iteye.com/topic/80620#289390)
所以我倾向于用一条简单的命令就可以知道permsize的占用情况,结果这方面的命令还真不少,jstat就是其中之一,
我使用的命令是: jstat -gcpermcapacity pid ,pid是进程的编号(可以用jdk工具命令查看: ),关于jstat的使用说明可以查看 sun的网站:
http://download.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html
jstat输出的数据都是以kb为单位的。在我的应用中,permsize占用情况
Java代码
1.PGCMN PGCMX PGC PC YGC FGC FGCT GCT
2. 16384.0 65536.0 65536.0 65536.0 132 3 1.866 2.977
PGCMN PGCMX PGC PC YGC FGC FGCT GCT
16384.0 65536.0 65536.0 65536.0 132 3 1.866 2.977
所以我决定把PermSize设为128M, MaxPermSize设为256M。
应用在linux服务器上,所以设置catalina.sh如下:
Java代码
1.JAVA_OPTS='-Xms1024m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256m '
JAVA_OPTS='-Xms1024m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256m '
请大家多多指教。
==================
以上是转载,以下是本人实测:
C:\Users\tjx>jps -l
5144 org.apache.catalina.startup.Bootstrap
6996 sun.tools.jps.Jps
4984
1272 com.starbase.starteam.gui.StarTeamFrame
C:\Users\tjx>jstat -gcpermcapacity 5144
PGCMN PGCMX PGC PC YGC FGC FGCT GCT
12288.0 65536.0 39424.0 39424.0 94 9 0.970 1.483
C:\Users\tjx>
PGCMN PGCMX PGC PC YGC FGC FGCT GCT 这些信息的 意思,
请参看: https://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html
-gcpermcapacity Option -------Permanent Generation Statistics Column Description
PGCMN Minimum permanent generation capacity (KB).
PGCMX Maximum permanent generation capacity (KB).
PGC Current permanent generation capacity (KB).
PC Current permanent space capacity (KB).
YGC Number of young generation GC events.
FGC Number of full GC events.
FGCT Full garbage collection time.
GCT Total garbage collection time.
--谷歌翻译--
-gcpermcapacity选项-------永久代统计信息列描述
PGCMN最低永久性的发电容量(KB)。
PGCMX最大永久性的发电容量(KB)。
PGC现任常任发电容量(KB)。
PC当前的永久空间容量(KB)。
年轻一代GC事件YGC数。
全GC事件FGC数。
FGCT完全的垃圾收集时间。
GCT总的垃圾收集时间。
- (转载)PermGen space 溢出 使用jstat查看 Permsize 占用情况 并设置 PermSize和MaxPermSize
- Tomcat Xms Xmx PermSize MaxPermSize 区别 及 java.lang.OutOfMemoryError: PermGen space 解决
- Tomcat Xms Xmx PermSize MaxPermSize 区别 及 java.lang.OutOfMemoryError: PermGen space 解决
- Tomcat Xms Xmx PermSize MaxPermSize 区别 及 java.lang.OutOfMemoryError: PermGen space 解决
- Tomcat Xms Xmx PermSize MaxPermSize 区别 及 java.lang.OutOfMemoryError: PermGen space 解决
- Tomcat Xms Xmx PermSize MaxPermSize 区别 及 java.lang.OutOfMemoryError: PermGen space 解决
- Tomcat Xms Xmx PermSize MaxPermSize 区别 及 java.lang.OutOfMemoryError: PermGen space 解决
- java 虚拟机设置 Xms Xmx PermSize MaxPermSize
- Java虚拟机设置Xms Xmx PermSize MaxPermSize
- java 虚拟机设置 Xms Xmx PermSize MaxPermSize
- Xms Xmx PermSize MaxPermSize
- Xms Xmx PermSize MaxPermSize
- Xms Xmx PermSize MaxPermSize
- JVM 内存设置大小(Xms Xmx PermSize MaxPermSize 区别)
- JVM 内存设置大小(Xms Xmx PermSize MaxPermSize)
- JVM 内存设置大小(Xms Xmx PermSize MaxPermSize 区别)
- JVM 内存设置大小(Xms Xmx PermSize MaxPermSize 区别)
- JVM 内存设置大小(Xms Xmx PermSize MaxPermSize 区别)
- hive操作
- 百度地图开发之一[申请key下载SDK]
- eclipse 中安装 json editor
- strdup函数 -- linux函数
- C++多线程(三)
- (转载)PermGen space 溢出 使用jstat查看 Permsize 占用情况 并设置 PermSize和MaxPermSize
- fedora下安装matlab
- 厚度1207 汉诺塔II
- IOS详解TableView——内置刷新,EGO,以及搜索显示控制器
- 命令模式
- PAT 1051. Pop Sequence (25)
- 第16讲- UI组件之TextView
- 众筹时代 - Web众筹平台
- Android 读取Manifest文件下Application 等节点下的meta-data自定义数据