大规模内网DNS系统的瓶颈以及应对措施

任何一个服务的规模达到一定量级都会出现各种瓶颈点,传统的IDC内部DNS也不例外。根据多年的实际经验把工作中遇到的点集成到了一个图。
主要瓶颈点:
1. DNS记录更新瓶颈
2. DNS同步瓶颈
3. DNS缓存应答瓶颈
4. DNS递归瓶颈

dns%e7%93%b6%e9%a2%88

到底多大规模的内网DNS系统能称为大?个人定6个9标准:
1. IDC数量至少9个。
2. 域名全网生效SLA 9s内。
3. 一个IDC的DNS数量大于9台。
4. 调用DNS API的外部业务系统至少9个。
5. 单个机房DNS服务的范围超过9999台服务器。
6. DNS系统内的域名zone数量超过99个。

如果你管理的内网DNS系统规模满足一半以上的条件,想必你也会遇到各种奇葩的问题。从上图给出的几个瓶颈点出发几个优化的建议:

1. 控制外部API的调用并发,如果有的系统需要批量更新大量的域名,可以使用合并发送nsupdate操作的模式,注意单个nsupdate报文不要超过65535字节.

2. dns master服务器最好使用SSD服务器,因为nsupdate操作时zone文件的频繁会写非常消耗IO。

3. master上注意增大serial-query-rate以保证master的notify发送速度,估算值serial-query-rate >=slave规模*同时更新zone数量,实测发送速度可以超过2k/s。

4. master上增大transfers-out的值,需要>=slave规模*同时更新zone数量,

5. slave上transfers-in transfers-per-ns 需要大于本地zone的数量,否则导致新节点启动时因超过quota值部分zone会延迟半个小时以后再同步;slave 上serial-query-rate 超过本地zone的数量。

6. salve机器上常备dnstop分析实时流量。

7. salve服务器上如果有公网IP,务必配置好iptables,放置被当作反射器去攻击他人,并经常会有国安局、公安局领导约谈。

此条目发表在System分类目录。将固定链接加入收藏夹。

发表回复