java技术研究

统计

留言簿(3)

阅读排行榜

评论排行榜

关于tomcat总是内存溢出

写这个的文章太多了,为了防止忘记,我还是记一下吧,年纪大了,记性不太好):
1.将tomcat/bin目录下的catalina.sh文件加上这两行:
JAVA_OPTS='-server -Xms512m -Xmx512m  -XX:PermSize=32M -XX:MaxNewSize=128m -XX:MaxPermSize=64m -Djava.awt.headless=true'
CATALINA_OPTS="-server -Xms256m -Xmx256m"
设置一下资源大小。
2.如果配了apache的一定要把url转发的转发规则定好,不能全部转发给tomcat去处理。
图片,样式,js等要发给apache去处理:
JkMount /*不能有,有些apache配置了workers.properties的就去掉[uri:/*.jsp]worker=ajp13:localhost:8009
context=/

posted on 2007-02-25 16:17 小秦 阅读(3174) 评论(6)  编辑  收藏

评论

# re: 关于tomcat总是内存溢出 2007-02-27 11:10 hcom

请问,这两行加在catalina.sh的任何位置吗?

windows下是不是就加在catalina.bat文件中了?也是加在任何位置吗?

另外:如果我加了这两句,我怎么察看我的tomcat占用的内存大小呢?

这两句话分别代表什么意思呢?

  回复  更多评论   

# re: 关于tomcat总是内存溢出[未登录] 2007-02-28 09:44 小秦

1。你好,windows下就加在catalina.bat文件中,也是任何位置,一般我都加载最上方的注释下面。
2。tomcat的内存占用大小可以用查看java进程占用内存大小的方式,linux下是在命令行下输入top,windows下ctrl+alt+del你点进程就可以了。
加上去后你就会看到启动tomcat后,java进程就直接占用你所设定的内存空间大小。和以前相比很明显。
你也可以使用工具Jprofiler,实时监控服务器运行情况。
3。-Xms : 应用程序初始化内存大写,注意是你的某一个应用程序,多个应用程序将生成多个JVM实例
-Xmx: 应用程序占用内存的最大值,将不能超过这个值,否则可能导致OutOfMemory.
-XX:NewRatio old generation/new generation 的比例
推荐的-Xms -Xmx设置成一样,,为系统内存的80%.这样,不用每次GC清理完再重新分配.而-XX:NewRatio为2
PermSize为固定存储区域,GC不会对其进行回收,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误,静态static对象/方法/属性和类关联的,不被虚拟机JVM回收,太多的话可能造成这个错误。

4。有些tomcat版本本身就有内存泄漏的问题,5.5.4就有,有时候需要换一下tomcat。  回复  更多评论   

# re: 关于tomcat总是内存溢出 2007-07-18 14:25

我有一个问题想请教一下,我做了一个网站,在线人数一多,就会出现异常,有时候打开的网页只显示一部分,刷新之后又可以全部显示,是不是线程的问题?困扰我很久了,能帮我解决吗?  回复  更多评论   

# re: 关于tomcat总是内存溢出 2010-08-13 15:16 berry

你好~想请教下
现在我们项目里用velocity生成静态页 ,只要访问不同的静态页面 permgen space的使用大小就会涨 ,就是配置了上面的内存大小 tomcat还是有内存溢出的时候.服务器的apache只是做了二级域名转发的作用,并没有用来处理js和静态页面等等,这些都是交给tomcat处理了 是不是这个原因引起的呢  回复  更多评论   

# re: 关于tomcat总是内存溢出 2010-09-29 08:55 小秦

@洁
从你描述的现象看,可能访问的人网络慢,也可能托管的机房速度慢。机器老化,或者机房的网速不行。  回复  更多评论   

# re: 关于tomcat总是内存溢出 2010-09-29 08:57 小秦

@berry
你说的这个因素确实是有影响的。既然生成了静态页面,推荐用apache访问。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: