【问题标题】:Tomcat configuration for analytics application分析应用程序的 Tomcat 配置
【发布时间】:2011-08-09 14:53:42
【问题描述】:

我正在开发一个与 Google Analytics 非常相似的分析应用程序。 它基本上将来自各个站点的统计信息存储在数据库中。

该应用程序具有以下属性:

  • 大量请求(高峰时间为 2.5k/s)
  • 很少处理每个请求

我正在使用 Tomcat 6 和 Apache HTTPD 2。

对于这种特定类型的应用程序,我应该为 Tomcat 的 maxThreadsconnectionTimeout 属性设置什么值?

【问题讨论】:

  • 您是否有一些关于您的应用程序每天/每月/每年使用情况的数据/统计数据?如果没有,为什么不通过发送数百万个请求进行测试,直到 Tomcat 开始轰炸并从那里开始工作。
  • 我每天存储 150 万条记录,目前使用两台 8GB RAM 和 3GHz 双核处理器的 tomcat 服务器。

标签: java tomcat apache2 timeout analytics


【解决方案1】:

确定您的特定网站的最佳设置的唯一方法是通过测试。显然,您的 Tomcat 实例将处理大量相当小的请求而返回的数据很少——这不是正常情况。我的猜测是,您可能需要大量线程(可能为 1000,默认值为 200)和较短的超时时间,但必须通过测试确定最佳的确切值,并可能在现场试验后进行调整。

在过去,我编写了一些多线程应用程序来在服务器上触发请求,它既便宜又令人愉快,并且可以达到非常高的请求率。如果您想要更复杂的东西,请查看JMeter,它可以很好地对大多数网站进行负载测试。

如果您担心请求数量会淹没单个实例,我认为您应该考虑使用某种形式的负载平衡运行多个 Tomcat 实例。由于您似乎在 Apache 后面运行 Tomcat,因此在 AJP 连接器中设置应该相当简单。

编辑

刚刚看到您的数据更新。我更喜欢查看请求/秒,而您给出的数字大约为 18/秒。我原以为 Tomcat 能够在不更改设置的情况下解决这个问题。我的猜测是你在其他地方有一个瓶颈,可能是在数据的存储中,因为我猜它正在进入数据库。

【讨论】:

  • 我知道 hits/day 信息量不是很大。在高峰时间,我在每台服务器上获得大约 2.5k 次点击/秒。我绝对可以尝试提高最大线程数。
猜你喜欢
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2014-07-22
  • 1970-01-01
  • 1970-01-01
  • 2015-09-08
  • 1970-01-01
相关资源
最近更新 更多