1

在 32 位系统上,JVM 的内存限制为 1.5 到 2 GB。64 位 Linux 上的 JVM 内存有什么好的价值?如何将其映射到 tomcat 中的最大线程数和最大请求​​数?

我正在使用 JDK 6+ 和 tomcat 7。四核处理器上的可用 RAM 为 12 GB。

MRD

4

2 回答 2

3

我认为这个问题没有现成的答案。这在很大程度上取决于您要托管的应用程序类型以及系统上的应用程序数量。我在 64 位 linux 系统上管理一个带有 3-4 个应用程序的小型服务器。使用 4GB 对我来说绰绰有余。

我的建议是大胆猜测您的应用程序需要多少内存。然后用监控工具启动tomcat,然后观察你的tomcat上有多少负载。您可能为 tomcat 分配了太多资源。也许太少了。你永远不会知道

请阅读这篇关于同时用户的文章,以及关于tomcat中的负载平衡的文章

基本上你必须区分用户和请求。您可能有 5000 个用户浏览您的网站,但同时只有 100 个用户请求新页面。默认情况下,tomcat 支持 50 个并发请求(虽然不是 100% 肯定)。但是这个数字可以在你的 tomcat 配置中改变。显然,您可能需要更多硬件。在第二篇文章中,建议每个 tomcat 实例最多 200 个请求。只有在第二篇文章中提到的简单计算规则并进行一些监控才能有所帮助。

甚至还有一个用于 tomcat 的负载均衡器管理器。看看 tomcat的负载均衡器

要考虑的另一件事是,尽管您拥有支持 5000 个用户的硬件和正确的负载平衡,但您还需要足够的带宽来做到这一点。在第二篇《tomcat中的负载均衡》中再次说明

祝你好运

于 2012-07-25T11:28:49.767 回答
1

这取决于有多少用户将同时访问您的应用程序。

有时,应用程序会在特定时间点运行非常缓慢,

例如,在上午 8:00,登录操作导致应用无法正常运行。

我建议您根据“用户总数”估算每个用户的平均内存,

然后你可能会得到一个几乎正确的内存设置。


于 2012-07-25T11:45:36.530 回答