【发布时间】:2015-06-02 03:00:52
【问题描述】:
我有一个播放框架 2.3 应用程序。当我在开发或生产模式下部署我的本地机器时,它工作得非常好。但是,当我在另一台服务器(Red Hat Enterprise Linux Server 6.2 版,圣地亚哥)中部署时,应用程序在大约 2 小时后关闭。
在多次分析应用程序后,我得出的结论是没有内存问题,死锁等。一切正常。我正在覆盖 GlobalSettings 中的 onStop 方法并记录如下消息:
override def onStop(app: Application) {
Logger.info("Application is shutting shutdown...ByeBye")
}
在日志中,这是我在关机前看到的全部内容:
2015-05-27 00:36:54,515 - [INFO] - from application in **Thread-4**
Application is shutting shutdown...ByeBye
由于某种原因,它总是来自 Thread-4。 我有 DEBUG 级别的日志,我没有看到任何可能引发任何危险信号的异常或消息。似乎有些东西正在杀死应用程序或发送停止信号。我无法确定这次关闭的原因。除了我的应用程序之外,没有任何内容被记录到 /var/log/messages 或任何其他日志中。 有什么想法可以让我理解应用程序停止的原因吗?
我的申请的一些细节: 这很简单,它公开了一个 REST API。我正在使用“dist”命令构建一个二进制文件及其所有依赖项。我是这样开始的:
/path/to/binary -Dhttp.port=5000 -J-Xmx32g -Dconfig.resource=application_prod.conf
谢谢。
【问题讨论】:
-
你确定 32 gigs 的最大堆大小可以吗?
-
是的。我正在部署的服务器有数百个可用 RAM,而我的应用程序使用的内存远少于 32gb。我分析了一下,发现内存很好,不是关机的原因。
-
我也面临同样的问题。就我而言,我什至不知道为什么服务器会关闭,而覆盖的方法
onStop没有被调用。 -
你在 play 应用中使用 akka 吗?
标签: java scala unix playframework jvm