我在jvm方面的经验主要是为几个应用程序维护一个tomcat容器。我发现自己总是不确定-Xms -Xmx -Xmn -XX:PermSize -XX:MaxPermSize设置的比率是多少,并且初始化了tomcat实例。
我知道这将取决于我正在运行的应用程序的数量和大小。我不想让人握住我的手,但是任何人都有关于如何测试您的负载需求以及设置的好比率的提示或资源?
提前谢谢。
在这种情况下,该框是一个切片主机vps:
64位Linux 1024 Ram和1.6 jdk Sun (尽管我可能会更改)
Tomcat通过mod_jk坐在Apache后面。我还运行mysql和邮件服务器(都是低使用率)。
在tomcat上,我只运行了一个jruby和两个railo (cfml)应用程序,以后应该会添加更多。
我正在寻找更多的提示/指针,而不是一个确切的设置规范。因为几乎每件事都会发生变化。
发布于 2009-07-31 19:34:34
您需要提供更多的信息:
1)盒子上有多少内存?只有Tomcat在跑吗?
2)这是32位虚拟机还是64位VM?
3)这个盒子上有多少个CPU/核心?
4)您正在运行哪个主要版本的jdk ? 1.4、5或6?
这些问题的答案将允许您为堆设置边界。
一旦您通过了这个问题,可能需要回答有关应用程序的问题--有多少对象是长期存在的(即缓存),以及有多少对象是短暂的(在它们超出作用域之前不到5秒)。
这些问题将告诉我们堆中有多少%可以用于伊甸园,需要为老一代使用多少百分比。
那么,如果Tomcat运行时间很长,那么添加'-server‘标志可能是有益的。考虑到你的限制,除非你知道你的应用程序的内部和外部,也许最好让它由人体工程学来确定最佳比率和收集器。Java调优与其说是一门科学,不如说是一门艺术。从这里开始:http://java.sun.com/javase/technologies/hotspot/gc/gc_调谐_6.html,然后寻找像GCHisto和VisualGC这样的工具来帮助您可视化VM内部发生的事情。
https://serverfault.com/questions/48630
复制相似问题