典型的请求/第二个“服务器”可以处理?

时间:2011-04-12 05:56:25

标签: java performance tomcat webserver

我想实现一个对服务器进行轮询的ajax客户端。这导致数以百万计的小请求......

你有任何粗略的估计(基于你的硬件和经验,我当前没有任何专用的服务器硬件),人们如何处理服务器可以处理例如Tomcat 7与标准服务器硬件(8GB Ram,4核心,每个2,5GHZ)?一个请求的内部处理在50毫秒内完成(只有数据被放入Ram Cache,一些计数器递增,轻量文本处理,然后再次从内存读取数据返回客户端。它将全部适合RAM )。

我将非常感谢您在类似的环境中提出了多少经验,或者您能够在服务器上处理这些请求。

谢谢! 延

1 个答案:

答案 0 :(得分:1)

实际上,50毫秒为您提供了大量的处理...特别是如果这些请求中的大多数只是轮询,大概是为了更改。你是怎么想出这个估计的?这会让4个核心忙于每秒80个请求,当然......但这并不是很多,你可能不希望一直以满负荷运行你的服务器,并且会有简单处理网络的一些开销。

老实说,与尝试相比,估算相对毫无意义。无论如何,您还需要加载测试服务器,因此最好现在而不是以后再进行测试。

请注意,频繁轮询的替代方法是长时间“悬挂”请求,即Comet。每个请求将在一段时间内(例如5-10分钟)未完成,并且一旦您进行了更改,您就会做出适当的回应。这样你就可以大大减少请求的数量 - 但它确实使代码更难编写(因为它必须是异步的;你不希望那时每个请求有一个线程)。