我们使用64位Windows 2003服务器来运行WebSphere / J2EE应用程序(JVM也是64位)。该机器具有16GB物理内存。不幸的是,我们的应用程序是内存密集型的,我们仍需要一些时间来添加额外的内存。
我理解操作系统本身需要一定的内存量。话虽如此,假设这是系统上运行的唯一应用程序,我们可以使用哪种安全(没有分页?)最大堆大小?
答案 0 :(得分:2)
我认为答案将取决于许多因素,其中许多因素很难预测。
IMO,确定安全最大堆大小的最实用方法是通过反复试验。我从一个大约15Gb的最大堆大小开始,查看系统的内存/分页统计信息,然后向上或向下调整。
答案 1 :(得分:0)
最好的想法是试验......检查第一个答案here ......它会帮助你......
您可以编写批处理文件来针对不同的堆大小进行实验,并查看它崩溃的位置......
答案 2 :(得分:0)
如果您有两个存储库,例如因为你有两个CPU,你可能会发现如果你使用超过一半的内存,你的应用程序性能会明显变慢。如果使用大约3/4的内存条大小,您将从内存中获得最佳性能。
使用更多内存可能会获得更好的性能,但它不会按预期方式扩展,GC时间会大幅度增加。