一种简易站点访问流控策略的设计

问题引入

现有这样一种网站访问限制和需求:

1、站点对请求流量要求单个IP每秒只能进行m次请求,否则会丢出HTTP XXX错误码,

2、站点上有n个url需要不定时访问,且对于每个url x,其刷新延时为li,该值在程序生命周期内为变量,

要求设计一种访问延时策略,提高m次请求的利用率

 

分析

显然,当n/m小于所有li时,那么每一个请求延时只要满足li,都可以保证不会触碰到服务器的访问策略极限;

但是,当一部分li小于n/m时,就比较麻烦,

因此,假设每个请求优先级为rank,设计一种方案,将低优先级(rank值大)的请求让位给高优先级(rank值小)的请求,

故每个请求实际延时为(基于简单的线性权重函数,可以替换为复杂的priority(i)):

L_{i} = \tfrac{n-rank_{i}}{n}\cdot l_{i}+ \tfrac{rank_{i}}{n}\cdot T

T为调控因子,求T的值为多少,能保证极端情况(所有的li=0)时期望值不超过n/m,即可以保证不会触碰到服务器的访问策略极限

求解

显然,求解期望值:

\overline{L_{i}}=\tfrac{n}{m} \Rightarrow \overline{rank_{i}}\cdot T = \tfrac{n^{2}}{m}

T = \tfrac{2n}{m}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值