客户端 - 服务器服务器进程运行时间的限制是什么?

时间:2016-06-09 01:08:57

标签: web-services web client client-server webclient

我有一个接收输入并返回输出的程序,运行时间约为2秒,

现在,我想在可以处理多个连接的服务器上在线运行这个程序(比如说高达100k), 在程序将启动的每个客户端 - 服务器会话上, 客户端将向服务器提供程序的输入,并等待程序结束以接收服务器的响应(程序的输出),

让我们说服务器的主机是一台非常强大的机器 - 例如16核,

这可以用于每个客户端的运行时间吗? 这种程序可以拥有的最大运行时间是多少?

1 个答案:

答案 0 :(得分:0)

我将此作为答案发布,因为它太大而无法作为评论。

这可以吗?这取决于。这取决于因为这个问题有很多变数。让我们来看看其中一些:

  • 你说计算结果需要2秒钟。这些秒花在哪里以及如何?这是纯计算还是您访问数据库或文件系统?是CPU绑定还是I / O绑定?如果您运行计算整整2秒,那么您正在消耗CPU,这意味着您可以同时只为16个客户端提供服务,每个核心一个。你在点击数据库吗?这是在功能强大的服务器上还是在其他机器上?如果数据库是瓶颈而不是将其移到功能强大的服务器并且上面装有SSD驱动器。
  • 你能改善一个客户的处理吗?什么更有效率,在一个核心上进行处理或在所有核心上进行扩展?如果可以并行化,是否可以限制线程争用?
  • 是你需要的CPU吗?记忆怎么样?您访问的任何后端服务?是那些通过网络?你有足够的带宽吗?
  • 与记忆有关,您使用的语言/平台是什么?它有垃圾收集器吗?你生成了很多对象来计算结果吗? GC是否会启动并暂停您的应用程序,以便清理和压缩内存?您是否为应用程序分配了足够的内存来运行?
  • 您可以缓存响应并将其提供给其他客户端,还是自定义每个客户端的响应?您可以预先计算结果,然后将它们提供给客户,还是无法预测输入?
  • 您是否尝试过运行一些性能测试并分析应用程序以查看热点可能出现的位置?你能对他们做些什么吗?
  • 你有任何强加的表现标准吗?您想同时支持多少客户?是2秒太多了?客户可以住更多吗?还有多少?这意味着不可接受的响应时间是多少秒?
  • 你需要一个大服务器来运行这个设置吗?或者更小的服务器工作得更好(即水平缩放而不是垂直缩放)?

没有人能为你解答这个问题。您必须对应用程序进行分析,运行一些测试,对其进行分析,优化,然后重复,直到您对结果满意为止。