微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java服务器应用程序闲置一段时间后Windows

我有一个Jetty 9服务器应用程序的麻烦,似乎进入某种rest状态经过较长时间的闲置。 通常,Java进程的内存使用量为〜500 MB,但闲置一段时间后似乎下降到不到50 MB。 第一个请求需要花费几秒钟的时间来响应,而请求通常在几十毫秒的范围内。 但是在一两个请求之后,应用程序似乎回到了正常的响应状态。

我在32位Oracle Java 8 JVM上运行。 我的JVMconfiguration是非常基本的:

java -server -jar start.jar

我希望这个问题可以通过JVMconfiguration来解决。 有谁知道是否有任何特定的参数来禁用这种types的行为?

编辑:基于伊万的评论,我能够找出问题的根源。 原来,Windows正在将部分Java过程交换到磁盘上。 有关我的解决scheme的说明,请参阅我自己的答案。

Linux inotify API的效率如何?

在Python中,以最快的方式在具有特定扩展名的目录中构build文件列表

C ++保留内存空间

我如何确保例程按时执行?

在DLL中使用cpu特定function有哪些标准技术?

如何在使用makefile时禁用GCC优化?

现代机器上的合并sorting优于快速sorting吗?

具有更高cpu性能的机器(根据gprof)如何具有更差的实时性能

软件来调整/校准启发式algorithm的属性

最好的方法来比较不同版本的库的性能

根据伊万的评论,我能够找出问题的根源。 原来,Windows正在将部分Java过程交换到磁盘上。 这在将私人工作集与任务管理器中的提交大小进行比较时清晰可见。

我的解决方案是双重的。 首先,我在每分钟运行的服务器应用程序中做了一个简单的计划任务,并执行一个简单的测试,以确保重要的服务不会长时间处于非活动状态。 我希望这应该确保Windows不会将相关页面视为不活动。

之后,我也注意到这个过程是以“低于正常”优先执行的。 所以我改变了启动服务器的脚本,以确保它以“高”优先级运行。 这似乎可能会影响交换行为,也可能已经足以解决这个问题,但是我只是在已经部署我的第一个解决方案之后才发现它,以至于仍然不清楚。 无论如何,一切似乎都在按照现在的样子进行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐