只是关于Play框架的内存使用情况的一个简短问题。 我有一个生产实例,它似乎使用680768 kB的内存。它大部分位于交换区。Playframework的内存使用情况
(虚拟)服务器大约有750 MB,但也运行MySQL服务器和12个Apache虚拟服务器。有时在短时间内变成暂时无应答(或非常缓慢)。 我想这是因为交换(它不是CPU)。
该框架是否需要那么多内存? 我可以通过JVM参数-Xmx256m
左右限制内存使用量,但是要放入什么值,以及它使用如此多内存的原因是什么?
这是Play的用法!之前和开始后:
的Java:~~~~~版本:1.6.0_26主页: /usr/lib/jvm/java-6-sun-1.6.0.26/jre 最大内存:194641920免费 内存:11813896 总内存:30588928个 个可用的处理器:2
重启后:Java的:~~~~~版本:1.6.0_26主页: /usr/lib/jvm/java-6-sun-1.6 .0.26/jre 最大内存:194641920免费 内存:9893688 总内存:21946368 可用处理器:2
回答这样的问题是极其困难的。这取决于很多因素(复杂性,缓存等) - 玩!鼓励一种无状态设计,这样内存利用率似乎有点高(尽管对于Java来说并不奇怪)。您是否尝试重新启动服务器并查看内存占用是否降低?此外,内存转储可能会给您提示分配内存的提示。 – 2012-02-12 19:46:20
您可以发送播放状态给您的内存输出(在状态开始时)。就我而言,我正在使用-Xmx64Mo运行应用程序,没有任何问题。如果你需要更多的内存,你的代码中可能会有一些内存泄漏 – 2012-02-13 08:56:05
我会将其添加到问题中。活动内存中只有71 MB的当前665 MB(顶部)。 665似乎是一个足够稳定的数字。玩过反击之后!应用程序(和至少一个请求)顶部报告的内存是524米。 (把Play!在问题中报告的内存使用情况) – 2012-02-13 14:36:38