如何最大限度地缩短响应时间,在客户端以极不同的速率发送请求的环境中最大化系统总体性能?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何最大限度地缩短响应时间,在客户端以极不同的速率发送请求的环境中最大化系统总体性能?相关的知识,希望对你有一定的参考价值。

在时间敏感的环境中,什么是确保来自所有客户端的请求得到快速公平处理的最佳算法(如果存在对计算资源的竞争,则具有少量待处理请求的客户端将获得高处理优先级,反之亦然)尽可能但也确保没有浪费服务器计算资源?例如,服务器处理来自2个客户端的请求,客户端A以1req / s的速率发送请求,客户端B以1000req / s的速率发送,假设服务器可以处理1001req / s。请求率仅为平均值,这意味着可以随时发送任意数量的请求。

编辑:所有请求都是同质的,只有一个线程可以实现它们

我的初始是使用循环方法,其中每个客户端的请求被放入不同的FIFO队列,服务器以循环方式从每个队列中提取请求。这可以确保服务器始终处理请求,并且客户端A的请求不会被客户端B过度拥挤。

请评论我的方法并分享您的任何其他想法。

答案

我假设您提出的循环处理与任何先发制人机制无关。从这个意义上讲,“公平”的定义起着重要作用。假设公平与您输入的请求越多,如果存在其他请求,则处理的处理请求的数量越少。例如,如果我们有100个请求从客户端A等待,50个请求从客户端B等待,则处理来自客户端A的2个请求,之后您处理来自客户端B的请求,等等。换句话说,包括每个客户端的请求数与您的循环调度程序的请求总数相关。

以上是关于如何最大限度地缩短响应时间,在客户端以极不同的速率发送请求的环境中最大化系统总体性能?的主要内容,如果未能解决你的问题,请参考以下文章

车辆路径算法?

loadrunner 软件是干啥的?

希望在 iPhone 故事板应用程序中最大限度地重用

性能测试的工具

如何在 Matlab 中最大限度地利用多线程 CPU?

如何最大限度地保护我的应用程序中的个人文档