Jetty(Java中的HTTP Servlet服务器)意外closures

一个Jetty应用程序被部署在我的服务器上,但是一直在终止,很less有可以理解的证据。 任何帮助解决这个将不胜感激。

细节:

OS: Slackware Linux 13.1 Linux 2.6.32.16 running as Xen guest OS Java info: java version "1.6.0_20" Java(TM) SE Runtime Environment (build 1.6.0_20-b02) Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing) nginx 0.7.67 config (only pertinent items): location /app { proxy_pass http://localhost:50013; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } 

Jetty应用程序通过daemontools在运行文件中启动,其中包含:

 #!/bin/sh cd /path/to/app exec setuidgid userXYZ /usr/lib/java/bin/java -server -verbose -jar ./app.jar 

日志中没有证据表明它为什么零星地closures(之后守护进程再次启动)。

显然,当使用内存中的会话时,这是不理想的,因为用户的会话终止。

所以,我运行应用程序使用strace,没有守护进程,输出可以在这里find:

http://pastebin.com/ZKCMWVQM

谢谢戴尔

首先,你的系统上是否有一个名为“core”的文件? 这可能是Jetty在坠毁时产生的。

这里有一些可能性:

由于频繁的垃圾回收,您的JVM可能会发生颠簸。 你可以使用像VisualVM这样的工具来testing。 如果该GUI不是选项,则可以使用JVM开关将GC统计信息打印到日志文件。

您的JVM可能没有足够的空间。 GC分析也将对这种可能性发光。 如果增加堆大小会发生什么?

我的理解是,你不能像调整J2EE服务器那样调整Jetty,所以这可能是好的。

您的应用程序出现问题的最终可能性。 您可以使用以下教程来debugging在Jetty上运行的应用程序: http : //sujitpal.sys-con.com/node/508048/mobile 。

祝你好运!