java/lang/OutOfMemoryError":"Failed to fork OS thread请教

luofamous 2007-08-15 11:55:16

> my platform
> Server version: Apache Tomcat/5.5.23
> Server built: Mar 5 2007 08:25:04
> Server number: 5.5.23.0
> OS Name: AIX
> OS Version: 5.3
> Architecture: ppc
> JVM Version: pap32dev-20070511(SR5)
> JVM Vendor: IBM Corporation
JAVA_OPTS : "-Xms800M -Xmx1200M -Xss128k"

在运行一天左右,就会出现java/lang/OutOfMemoryError":"Failed to fork OS thread的异常,jvm打出一个core文件。这时,大部分线程将进入wait状态,导致很多业务不能运行,请教各位大侠是否遇到过同样的情况。

注:内存大小为8G.

谢谢!
...全文
915 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sacrefies 2007-09-29
  • 打赏
  • 举报
回复
第一:

xms 的值最好是 xmx 的 4 分之一

第二

xmx 的值最大不要超过可用物理内存的 5 分之 4

第三:

你最好再加一个参数 -XX:MaxPermSize= 【2分之一 xms】

然后呢,使用这个 jvm 参数,来做垃圾回收的检查,看下测试结果
deng1234 2007-09-20
  • 打赏
  • 举报
回复
程序的rs,stm,conn 没有依次关闭,把-Xmx1200M 再设大些一般不会起做用。

在运行一天左右,就会出现java/lang/OutOfMemoryError

表明你有部分程序的rs,stm,conn没有关闭,并不是所有的程序用完连接都没有关闭,当程序运行到那个没有关闭的连接时,内存就会出现泄漏,但服务器不会吗上死掉,因为服务器有一定的负载能力,当内存泄漏到一定的程度tomcat就会死掉,
jdk1.5以上的版本可以用jconsole.exe 查看一下线程使用情况,内存出现泄漏时会提示相关java类,然后检查一下那个java类中的代码是否有问题。
lemonfamily 2007-09-03
  • 打赏
  • 举报
回复
检查下是否存在死锁。
luofamous 2007-08-15
  • 打赏
  • 举报
回复
以前-Xmx 是设置为1500的,由于出现这个异常,导致没有内存建本地线程,所以才调小到1200的。 但是仍然会出现。望各位帮忙!
yangxccom 2007-08-15
  • 打赏
  • 举报
回复
把-Xmx1200M 再设大些看,再outofmemory的话,此程序可能有内存泄漏

249

社区成员

发帖
与我相关
我的任务
社区描述
其他产品/厂家
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧