我正在pipe理一个运行Tomcat的服务器,这个服务器最近stream量很大。
如果我监视任务pipe理器中的内存使用情况,我可以看到内存使用量增长,最终tomcat在1GB标记附近崩溃。
这里是我在Tomcat Properties(这是一个Windows Server)中设置的内存相关位:
初始内存池:1024 MB
最大内存池:1024 MB
-XX:MaxPermSize参数= 256M
奇怪的是,因为这些问题出现,我已经部署到Tomcat实例的Lambda探测,我看到的内存使用情况值低得多,例如任务pipe理器可能显示467MB使用,而探头中使用的“总计”是212 MB。 另外,Probe中列出的Maximum Total是1.29GB,当我预计1GB时,是上面设置的最大内存。
如果我强制垃圾收集器运行使用探针,我可以让Tomcat崩溃一段时间(无限期,AFAIK)。 那么为什么GC不能自动运行并阻止Tomcat崩溃?
谢谢。
菲尔,
您需要调整您的JVMconfiguration。 看看我在Tomcat服务器中使用的JMVconfiguration,在交通繁忙的情况下performance得非常好:
http://acevedoalberto.wordpress.com/2009/01/16/hello-world/
阿尔贝托