java - 分析应用程序的 Tomcat 配置

标签 java tomcat apache2 timeout analytics

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

应用程序具有以下属性:

  • 大量请求(高峰时2.5k/s)
  • 对每个请求进行少量处理

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

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

最佳答案

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

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

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

编辑

刚看到你更新的数字。我更喜欢看请求/秒,你给出的数字大约是 18/秒。我原以为 Tomcat 能够在不更改设置的情况下应对这种情况。我的猜测是您在其他地方遇到了瓶颈,可能是在数据存储中,因为我猜它会进入数据库。

关于java - 分析应用程序的 Tomcat 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5732787/

相关文章:

linux - 具有相对路径重定向的 Mod_Rewrite

java - 如何以编程方式将 ActionEvent 发送到 JButton?

java - 我的程序出现内存不足错误

Apache 不提供静态文件 + Ubuntu

java - OWASP CSRFGuard : required token is missing from the request

linux - 将行添加到 apache2 配置

java - 如何根据内容找出未显示的 JPanel 的首选大小?

java - Spring Data JPA 上的条件查询在 DB2 (z/OS) 上给出 -417 错误

tomcat - 尝试使用 Netbeans 将 webapp 重新部署到 Tomcat 时出现 AccessControlException

apache2 - 上传文件时无法设置正确的字符集