glassfish:Resource temporarily unavailable in tsStartJavaThread
来源:互联网 发布:网页朗读软件 编辑:程序博客网 时间:2024/04/30 01:41
今天测试服务器(用的glassfish3.1.1)在部署应用的时候忽然报出如下异常。随后使用用su和ps都会报出“-bash: fork: retry: Resource temporarily unavailable”。
[ERROR] [ERROR][thread ] Could not start thread Keep-Alive-Timer. Resource temporarily unavailable[ERROR] Exception in thread "Main Thread" java.lang.OutOfMemoryError: Resource temporarily unavailable in tsStartJavaThread (lifecycle.c:1096).[ERROR] Java heap 3G reserved, 64M committed[ERROR] Paged memory=18014398505034060K/18389412K.[ERROR] Your Java heap size might be set too high.[ERROR] Try to reduce the Java heap size using -Xmx:<size> (e.g. "[ERROR] at java.lang.Thread.start0(Native Method)[ERROR] at java.lang.Thread.start(Thread.java:597)[ERROR] at sun.net.www.http.KeepAliveCache$1.run(KeepAliveCache.java:89)[ERROR] at sun.net.www.http.KeepAliveCache.put(KeepAliveCache.java:75)[ERROR] at sun.net.www.http.HttpClient.putInKeepAliveCache(HttpClient.java:370)[ERROR] at sun.net.www.http.HttpClient.finished(HttpClient.java:358)[ERROR] at sun.net.www.http.ChunkedInputStream.closeUnderlying(ChunkedInputStream.java:196)[ERROR] at sun.net.www.http.ChunkedInputStream.processRaw(ChunkedInputStream.java:428)[ERROR] at sun.net.www.http.ChunkedInputStream.readAheadNonBlocking(ChunkedInputStream.java:493)[ERROR] at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:584)[ERROR] at sun.net.www.http.ChunkedInputStream.available(ChunkedInputStream.java:698)[ERROR] at java.io.FilterInputStream.available(FilterInputStream.java:142)[ERROR] at java.nio.channels.Channels$ReadableByteChannelImpl.read(Channels.java:196)[ERROR] at com.sun.enterprise.util.io.FileUtils.copy(FileUtils.java:915)[ERROR] at com.sun.enterprise.admin.remote.RemoteResponseManager.<init>(RemoteResponseManager.java:79)[ERROR] at com.sun.enterprise.admin.remote.RemoteAdminCommand.handleResponse(RemoteAdminCommand.java:1056)[ERROR] at com.sun.enterprise.admin.remote.RemoteAdminCommand.handleResponse(RemoteAdminCommand.java:1045)[ERROR] at com.sun.enterprise.admin.remote.RemoteAdminCommand.access$600(RemoteAdminCommand.java:101)[ERROR] at com.sun.enterprise.admin.remote.RemoteAdminCommand$1$1.handleReport(RemoteAdminCommand.java:526)[ERROR] at org.glassfish.admin.payload.PayloadFilesManager.processReport(PayloadFilesManager.java:473)[ERROR] at org.glassfish.admin.payload.PayloadFilesManager.access$900(PayloadFilesManager.java:93)[ERROR] at org.glassfish.admin.payload.PayloadFilesManager$DataRequestType$4.processPart(PayloadFilesManager.java:776)[ERROR] at org.glassfish.admin.payload.PayloadFilesManager.processPartsExtended(PayloadFilesManager.java:624)[ERROR] at org.glassfish.admin.payload.PayloadFilesManager.processParts(PayloadFilesManager.java:643)[ERROR] at com.sun.enterprise.admin.remote.RemoteAdminCommand$1.useConnection(RemoteAdminCommand.java:531)[ERROR] at com.sun.enterprise.admin.remote.RemoteAdminCommand.doHttpCommand(RemoteAdminCommand.java:700)[ERROR] at com.sun.enterprise.admin.remote.RemoteAdminCommand.doHttpCommand(RemoteAdminCommand.java:543)[ERROR] at com.sun.enterprise.admin.remote.RemoteAdminCommand.executeRemoteCommand(RemoteAdminCommand.java:482)[ERROR] at com.sun.enterprise.admin.remote.RemoteAdminCommand.executeCommand(RemoteAdminCommand.java:419)[ERROR] at com.sun.enterprise.admin.cli.remote.RemoteCommand.executeCommand(RemoteCommand.java:335)[ERROR] at com.sun.enterprise.admin.cli.CLICommand.execute(CLICommand.java:264)[ERROR] at com.sun.enterprise.admin.cli.AsadminMain.executeCommand(AsadminMain.java:306)[ERROR] at com.sun.enterprise.admin.cli.AsadminMain.main(AsadminMain.java:238)[ERROR] [ERROR][thread ] Could not start thread Thread-0. Resource temporarily unavailable[ERROR] Deployment of /home/javadev/codes/*****************.war failed.[ERROR] For more detail on what might be causing the problem try running maven with the --debug option [ERROR] or setting the maven-glassfish-plugin "echo" property to "true".
我们先分析了一下异常,看到“Paged memory=18014398505034060K/18389412K.”立马就吓到了,以为谁无聊又在改配置信息呢。在glassfish控制台查看glassfish启动JVM的配置参数,发现没什么异常,对比了其他配置都没有改变。相同的配置在其他测试服务器都能正常运行,初步排除了glassfish和JVM参数配置的问题。
随后对“-bash: fork: retry: Resource temporarily unavailable”进行分析,查看进程数:
[javadev@snaqi-test3 ~]$ ps -ef|wc -l 1025但在/etc/security/limits.conf用户javadev的配置
javadev soft nproc 1024 javadev hard nproc 16384 javadev soft nofile 2048 javadev hard nofile 65536显然用户进程数已经达到限制的极限,将第1行的1024改成2048,问题解决。另外,还可以将第3行2048改大,以防程序出现“too many file opens”的异常。
参考:oracle,ulimit,通过 ulimit 改善系统性能
- glassfish:Resource temporarily unavailable in tsStartJavaThread
- 关于Resource temporarily unavailable in tsStartJavaThread
- 【python】Resource temporarily unavailable
- pthread_create()-------Resource temporarily unavailable
- Resource temporarily unavailable解决办法
- WSAEWOULDBLOCK: Resource temporarily unavailable
- AIX:Resource temporarily unavailable解决
- semop: Resource temporarily unavailable解决方法
- -bash:fork:Resource temporarily unavailable
- 关于错误 Resource temporarily unavailable
- -1 resource temporarily unavailable
- linux: Resource temporarily unavailable 问题解决
- Samba & Nginx - Resource temporarily unavailable
- Resource temporarily unavailable
- Resource temporarily unavailable
- mount error 11 Resource temporarily unavailable
- Nginx + PHP-FPM (11: Resource temporarily unavailable)
- unix:/passenger_helper_server failed (11: Resource temporarily unavailable)
- 从驱动到转行到游戏开发的经验
- Microsoft Office Visio 2010如何创建UML 用例图
- 改变checkbox,使之可以像单选按钮一样使用
- SSG5简易配置命令及忘记登录密码和设备ip地址 的方法
- 如何一个android工程作为另外一个android工程的lib
- glassfish:Resource temporarily unavailable in tsStartJavaThread
- C# WinForm源码收集
- 程序员职业发展浅谈—工作和新技术
- 编译ffmpeg for iOS
- 深入Java对象及元素的存储区域
- BSTR 字符串
- 深入浅出MIPS 二 MIPS的内存映射 .
- Memory Layout of C Programs
- Android 动画框架详解