-1

我正在处理包含类型固定大小缓冲区FIFO)的项目:首先输入第一个输出,客户端将请求发送到该缓冲区,系统处理它们。当缓冲区已满时,我必须应用其中一个以下重载策略(Drop Policies):
DRPH:从缓冲区头部丢弃一个请求。
DRPT:从缓冲区尾部丢弃一个请求。
DRPR:随机删除缓冲区中 25% 的元素。
BLCK:阻止新连接,直到缓冲区中有可用空间。

我做了一个模拟来测量使用 Httperf的性能通过每秒发送许多请求并测量响应时间,但是我的响应时间值不稳定,尤其是在请求数量很大的情况下。所以通过模拟我无法得到最好的丢弃策略。我多次重复模拟,每次我得到不同的值。

问题是:
理论上,上述策略中最好的缓冲区管理丢弃策略是什么?.

4

1 回答 1

0

这绝对取决于您的数据以及需要的顺序。但通常,对于 FIFO,缓冲区末尾的数据是最旧的,因此最不可能再次被要求的数据。所以 DRPR 可能是最好的解决方案。但前提是您可以承受丢失数据(例如,因为它可以稍后重新插入)。如果不是这种情况,您必须阻止连接,直到缓冲区空间再次可用。

另一件事:我会争取一个动态缓冲区。从一个合理的默认大小开始,看看它填满的速度有多快。超过某个速率,将缓冲区大小(低于某个阈值,您可以再次降低它)增加到某个最大值。

于 2013-04-26T15:47:27.080 回答