java - Typical Requests/Second a "server"能处理吗?

标签 java performance tomcat webserver

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

您是否有任何粗略的估计(根据您的硬件和经验,我目前还没有任何专用服务器硬件),人工请求服务器如何处理例如具有标准服务器硬件(8GB Ram,4内核,每个 2,5GHZ)?一个请求的内部处理估计在 50 毫秒内完成(仅将数据放入 Ram 缓存,一些计数器递增,轻文本处理,然后再次从内存中读取数据返回给客户端。它会全部放入 RAM ).

如果您有任何经验,您认为您提出了多少请求,或者您能够在可比较的环境中在您的服务器上处理多少请求,我将不胜感激。

谢谢!! 延斯

最佳答案

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

老实说,与尝试相比,估计相对没有意义。无论如何,您都需要对服务器进行负载测试,因此最好现在而不是以后进行。

请注意,频繁轮询的替代方法是发出长时间的“挂起”请求,又名 Comet .每个请求都会在一段时间内(例如 5-10 分钟)保持未满足状态,一旦您有更改,您就会做出适当的响应。这样您可以大大减少请求的数量 - 但它确实使代码更难编写(因为它必须是异步的;此时您不希望每个请求一个线程)。

关于java - Typical Requests/Second a "server"能处理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5630957/

相关文章:

java - 将缺少的 xml 属性解码到可选的 java 对象

tomcat - 如何在 tomcat 中实现基于两步表单的登录/身份验证?

java - 保存用户从 Maven Clean 上传的文件

java - Spring Security 4 无法在 Tomcat 7 上创建 bean FilterChain

java - 从 GoogleCredentials 获取 applicationDefault

java jsch su- root (我该怎么办?)

Java SocketServer 正在接受来自 Socket 客户端的输入,但 Socket 客户端未接收来自 SocketServer 的输入

C++ 性能,for 与 while

java - 如果我在循环外评估数组的大小,运行时效率会有差异吗?

javascript - JavaScript 中 function() 和 () => 有什么区别