我正在开发与Google Analytics非常相似的分析应用程序。 它基本上存储了数据库中各个站点的统计信息。
该应用程序具有以下属性:
我正在使用Tomcat 6和Apache HTTPD 2。
我应该为此特定类型的应用为Tomcat的maxThreads
和connectionTimeout
属性设置哪些值?
答案 0 :(得分:1)
确定特定网站的最佳设置的唯一方法是通过测试。很明显,您的Tomcat实例将处理大量相当小的请求而几乎没有返回数据 - 这不是正常情况。我的猜测是你需要大量的线程(1000个可能,默认值为200)和短暂的超时,但最佳的确切值必须通过测试确定,并可能在现场试验后进行调整。
在过去,我编写了一些小型多线程应用程序来解决服务器上的请求,它既便宜又开朗,可以达到很高的请求率。如果你想要更复杂的东西,请查看JMeter它可以很好地加载对大多数网站的测试。
如果您担心淹没单个实例的请求数量,我认为您应该考虑使用某种形式的负载平衡运行多个Tomcat实例。由于您似乎在Apache后面运行Tomcat,因此在AJP连接器中进行设置应该相当简单。
修改
刚看到你的数据更新。我更愿意看看请求/秒,你给出的数字大约是18 /秒。我本以为Tomcat能够在不改变设置的情况下应对这种情况。我的猜测是你在其他地方有一个瓶颈,可能存储数据,因为我猜它正在进入数据库。