我对 qps-scale 以及在 BIND 中使用速率限制选项时如何使用它有几个问题。
引用:http://www.zytrax.com/books/dns/ch7/hkpng.html#rate-limit和 https://ftp.isc.org/isc/bind9/9.10.8-P1/doc/arm/Bv9ARM.pdf第 119 页
定义:允许的范围是 1 到非常大的数字(实际上是 32 位无符号值,这仍然是一个很大的数字)。默认不应用 qps-scaling。速率限制功能计算来自所有来源(包括 TCP 查询)的 DNS 每秒查询负载的近似值。然后应用 qps-scale(如果已定义),这可能会导致用户提供的限制减少,例如高负载情况下的每秒响应数。因此,假设用户定义的每秒响应数为 10;和 qps-scale 为 200;那么如果 DNS 服务器以每秒 500 次的速率接收查询(来自所有来源,包括 TCP),则应用以下算法(qps-scale/DNS 查询到达率)* 每秒响应数 = 有效速率限制,代入实际值可得出(200/500)* 10 = 4,这意味着在定义的负载条件下,任何 1 秒内对任何特定客户端的第 5 次及后续相同响应都将被丢弃(或触发任何定义的 slip 参数操作)。因此,如果使用 qps-scale 值,应将其设置为服务器所需的最大 DNS 事务(查询响应)速率。 http://www.zytrax.com/books/dns/ch7/hkpng.html#rate-limit
我的问题:根据我对上述定义的理解,“DNS 查询到达率”是每秒发送到 DNS 服务器的当前查询数,该数是动态变化的,而不是 DNS 服务器能够处理的每秒查询容量。我的理解正确吗?
DNS服务器是如何计算“DNS查询到达率”的?
“DNS查询到达率”多久计算一次?
如果定义了 qps-scale,而不是 0,那么 qps-scale 公式是否始终可用?例如:qps-scale 500;每秒响应数 50;“DNS 查询到达率”200 (500 / 200) * 50 = 125 有效每秒响应数,还是仅当“DNS 查询到达率”近似或超过 qps-scale 值时才使用 qps-scale 公式?
谢谢 Brent D