有人能给我解释一下令牌桶的概念吗?还需要帮助解决以下问题。
给定令牌桶大小b字节;令牌速率r字节/秒;以及最大输出速率M字节/秒,最大突发时间T是多少?
请详细说明如何处理此问题
发布于 2014-04-25 20:19:52
你读过这个吗?http://en.wikipedia.org/wiki/Token_bucket
基本上,当你想要限制某些东西的速率时,可以使用令牌桶来进行限制。这样想,有人每秒在你的桶里放一颗糖(R),那么你每秒只能吃一颗糖。如果你的桶可以容纳10(b)颗糖果,如果你有一段时间没有吃过它们,那么你的桶就会装满,那么你可以一次吃10颗糖(M)。
我想你关于最大突发时间T的问题的答案可以这样计算。重点是,当你以M速率吃糖果的时候,它也是以R速率重新装满的。
t = b/m;
while(1) {
T = (b + (t * r)) / m
if (T == t) return T;
t = T;
}所以如果b= 10,r=1/秒,M=2/秒,那么T= 9。
发布于 2019-03-16 03:38:40
对于你的问题,我们可以根据数据IO做一个等式:在时间T之后,数据输出应该等于数据输入。即: b+rT=MT T=b/(M-r)
https://stackoverflow.com/questions/22286273
复制相似问题