Tomcat内存和虚拟主机

时间:2010-02-22 12:20:26

标签: java memory tomcat memory-management

我有一个VPS服务于Tomcat 6.0。 当我只有两个应用程序时,500mb内存就够了。 上周我部署了另一个Web应用程序并组建了一个新的虚拟主机来编辑Tomcat server.xml。 但服务器响应速度减慢,linux开始吃掉掉掉。 当我增加750 mb的内存时,它再次变得稳定。 但内存并不便宜,所以我不乐意为每个额外的应用程序支付250 MB的RAM。

每个网络应用正常需要“250 MB的额外内存”吗? 有没有解决方案来降低这个成本? 例如,“将这些应用程序的公共库放到Tomcat的共享文件夹中”是否会对Tomcat内存和性能产生积极影响?

注意:已部署的应用程序是使用Spring,hibernate,sitemesh和相关库的Web应用程序,war文件大小总计高达30 mb。

感谢。

2 个答案:

答案 0 :(得分:1)

Spring / Hibernate /等类本身不太可能使用这个内存。所以.jar文件的大小并不重要。将这些库放在Tomcat的共享库目录中将有助于节省一些内存,因为这些类的一个副本只能加载,但这不会节省太多。

您的应用程序是否只是更多地使用这么多内存来存储数据等等?您需要使用分析器来确定首先消耗堆内存的内容。在你知道这个问题之前,它在追求特定解决方案方面没有多大用处。

答案 1 :(得分:0)

我认为您需要测量应用程序的内存消耗。 您可以在VisualVM和JHat(最佳启动方式)等分析工具中使用JProfiler或Java6构建。

查看此链接以获取更多信息: http://java.sun.com/developer/technicalArticles/J2SE/monitoring/