客户端-服务器服务器进程 运行 时间的限制是什么?
Client-server what is the limitation of server's processes run time?
我有一个接收输入并返回输出的程序,运行-时间大约为 2 秒,
现在,我想 运行 这个程序在可以处理多个连接(假设最多 100k)的服务器上联机,
在每个客户端-服务器会话中,程序将启动,
客户端将程序的输入交给服务器,并等待程序结束以接收服务器的响应(程序的输出),
假设服务器的主机是一台非常强大的机器 - 例如 16 核,
这行得通吗?还是每个客户的 运行时间太多了?
这种程序最多可以有多少运行时间?
我将其作为答案发布,因为它太大而无法作为评论放置。
这行得通吗?这取决于。这取决于因为这个问题有很多变数。让我们看看其中的一些:
- 你说计算一个结果需要 2 秒。这些秒数在哪里以及如何度过?这是纯粹的计算还是您正在访问数据库或文件系统?这是 CPU 绑定还是 I/O 绑定?如果你 运行 整整 2 秒的计算,那么你正在消耗 CPU 这意味着你只能同时服务 16 个客户端,每个核心一个。你在打数据库吗?这是在功能强大的服务器上还是在其他机器上?如果数据库是瓶颈,那么将其移至功能强大的服务器并在其上安装 SSD 驱动器。
- 你能改进一个客户的处理吗?在一个核心上进行处理还是将其分布到所有核心上哪个更有效?如果可以并行化,是否可以限制线程争用?
- 是CPU您所需要的吗?内存呢?您访问的任何后端服务?那些是网络上的吗?你有足够的带宽吗?
- 跟内存有关,你用的什么language/platform?它有垃圾收集器吗?您是否生成大量对象来计算结果? GC 是否会启动并暂停您的应用程序以便清理和压缩内存?您是否为 运行 的应用程序分配了足够的内存?
- 您能否缓存响应并将它们提供给其他客户端,或者响应是针对每个客户端定制的?您可以预先计算结果然后将它们提供给客户,还是不能预测输入?
- 您是否尝试过 运行 进行一些性能测试并对应用程序进行概要分析以查看热点可能出现的位置?你能为他们做点什么吗?
- 您有任何强加的绩效标准吗?您希望同时支持多少个客户? 2秒太多了吗?客户可以忍受更多吗?还有多少?多少秒表示不可接受的响应时间?
- 您是否需要大型服务器才能运行此设置或更小的服务器工作得更好(即水平缩放而不是垂直缩放)?
- 等等
没有人可以为您解答。您必须对您的应用程序进行分析,运行 一些测试,分析它,优化它,然后重复直到您对结果满意为止。
我有一个接收输入并返回输出的程序,运行-时间大约为 2 秒,
现在,我想 运行 这个程序在可以处理多个连接(假设最多 100k)的服务器上联机, 在每个客户端-服务器会话中,程序将启动, 客户端将程序的输入交给服务器,并等待程序结束以接收服务器的响应(程序的输出),
假设服务器的主机是一台非常强大的机器 - 例如 16 核,
这行得通吗?还是每个客户的 运行时间太多了? 这种程序最多可以有多少运行时间?
我将其作为答案发布,因为它太大而无法作为评论放置。
这行得通吗?这取决于。这取决于因为这个问题有很多变数。让我们看看其中的一些:
- 你说计算一个结果需要 2 秒。这些秒数在哪里以及如何度过?这是纯粹的计算还是您正在访问数据库或文件系统?这是 CPU 绑定还是 I/O 绑定?如果你 运行 整整 2 秒的计算,那么你正在消耗 CPU 这意味着你只能同时服务 16 个客户端,每个核心一个。你在打数据库吗?这是在功能强大的服务器上还是在其他机器上?如果数据库是瓶颈,那么将其移至功能强大的服务器并在其上安装 SSD 驱动器。
- 你能改进一个客户的处理吗?在一个核心上进行处理还是将其分布到所有核心上哪个更有效?如果可以并行化,是否可以限制线程争用?
- 是CPU您所需要的吗?内存呢?您访问的任何后端服务?那些是网络上的吗?你有足够的带宽吗?
- 跟内存有关,你用的什么language/platform?它有垃圾收集器吗?您是否生成大量对象来计算结果? GC 是否会启动并暂停您的应用程序以便清理和压缩内存?您是否为 运行 的应用程序分配了足够的内存?
- 您能否缓存响应并将它们提供给其他客户端,或者响应是针对每个客户端定制的?您可以预先计算结果然后将它们提供给客户,还是不能预测输入?
- 您是否尝试过 运行 进行一些性能测试并对应用程序进行概要分析以查看热点可能出现的位置?你能为他们做点什么吗?
- 您有任何强加的绩效标准吗?您希望同时支持多少个客户? 2秒太多了吗?客户可以忍受更多吗?还有多少?多少秒表示不可接受的响应时间?
- 您是否需要大型服务器才能运行此设置或更小的服务器工作得更好(即水平缩放而不是垂直缩放)?
- 等等
没有人可以为您解答。您必须对您的应用程序进行分析,运行 一些测试,分析它,优化它,然后重复直到您对结果满意为止。