我的朋友告诉我,在虚拟环境中运行Java时,可能会随着时间的推移吸收RAM,增加更多的内存也不会有什么区别。 这是真的? 为什么这对于Java来说是正确的,而不是像PHP或Ruby on Rails这样的其他平台呢?
我还看到ServerFault上的另一个线程在Linode上运行Cassandra不如在Rackspace或EC2上运行它? 为什么会有所不同?
感谢堆解释。
要回答你的第一个问题,我会说你的朋友的陈述是最不准确的。 您可以在直接硬件上运行同样不好的应用程序; 不幸的是,我知道这是一个事实(在大型硬件上开发商不太好的应用 – 仍然performance不佳)。 它真的归结为两个主要项目:
我已经运行了很好的应用程序和写得不好的Java应用程序。 相反,我也遇到了像PHP和Perl等其他框架。
这并不是说虚拟化环境在这里完全是无可指责的。 您必须了解您的应用程序的要求并相应地调整您的虚拟机的大小。 许多人想要“廉价”,并获得最小的虚拟机configuration,然后想知道为什么他们的应用程序要么疯狂交换,要么抛出OutOfMemoryexception。
请确保在决定询问您的系统pipe理员的内存大小之前,请参阅此文档( http://www.vmware.com/resources/techresources/1087 )。
HTH