什么是最好的缓冲管理丢弃策略?

时间:2013-04-26 09:15:30

标签: performance networking queue buffer benchmarking

我正在处理包含类型( FIFO )的固定大小缓冲区的项目:第一个输入First Output,客户端将其请求发送到该缓冲区,以及当缓冲区已满时,我必须应用以下重载策略之一(丢弃策略):
DRPH :从缓冲区头部删除一个请求。
DRPT :从缓冲区的尾部丢弃一个请求。
DRPR :随机丢弃缓冲区中25%的元素。
BLCK :阻止新连接,直到缓冲区中有空间可用
我使用Httperf通过每秒发送许多请求并测量响应时间来进行模拟以测量性能,但是我的响应时间值不稳定,尤其是当请求数量很大时。所以通过模拟我不能得到最好的掉落政策。我多次重复模拟,每次都有不同的值。

问题是:
从理论上讲,上述政策中最好的缓冲管理丢弃政策是什么?

1 个答案:

答案 0 :(得分:0)

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

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