1. 目的:同机房与跨机房访问域名解析服务性能对比、稳定性测试、极限测试。
2. 环境:skydns+etcd集群,skydns提供域名解析服务,etcd集群同步冗余域名信息。
3. 方法:同机房压测skydns域名解析服务;跨机房从A机房压测B机房域名解析服务。
4. 测试文件:写入55个域名,每一次并发发送55个域名。600次并发,发送600次55个域名请求。
5. 压测工具:
工具:使用bind域名服务提供的域名压测程序:queryperf
命令:queryperf -d filename -s ip -l 3600 -q 600
命令参数:-d指定域名输入文件、-s指定ip、-l指定压测时长、-q指定并发量
6. 网络拓扑图:
如上网络拓扑图,queryperf程序发送压测请求到skydns服务器,skydns服务器调度算法读取etcd上域名信息,然后,返回域名解析结果到queryperf。skydns可以部署在etcd的同一机器上。
7. 服务器配置:
测试机:11核Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz、40G、万兆网卡
Skydns:7核Intel(R)Xeon(R) CPU E5-2620 v3 @ 2.40GHz、25G、万兆网卡
etcd:7核Intel(R)Xeon(R) CPU E5-2620 v3 @ 2.40GHz、25G、万兆网卡
1. 同机房极限测试
序号 |
对象 |
时长 |
并发 |
qps |
总数 |
命中率 |
1 |
同机房 |
3600 |
600 |
24962 |
89991308 |
100% |
2 |
同机房 |
3600 |
60000 |
26452 |
98905521 |
0.93% |
3 |
同机房 |
3600 |
12000 |
17739 |
72368985 |
88.36% |
4 |
同机房 |
3600 |
5000 |
28407 |
104898857 |
97.63% |
压测效果最好在第1项,命中率100%,并发量在600左右,域名解析服务正常;
压测效果最差在第2项,命中率0.93%,并发量60000左右,域名解析拒绝服务;
压测效果稍好在第4项,命中率97.6%,并发量5000左右,域名解析服务中良;
2. 同机房稳定性测试
序号 |
对象 |
时长 |
并发 |
qps |
总数 |
命中率 |
1 |
同机房 |
3600 |
600 |
24962 |
89991308 |
100% |
2 |
同机房 |
900 |
1000 |
29751 |
26930924 |
99.98% |
3 |
同机房 |
900 |
2000 |
27961 |
25346056 |
99.82% |
4 |
同机房 |
900 |
3000 |
30646 |
27860677 |
99.55% |
5 |
同机房 |
1800 |
4500 |
28489 |
52402263 |
98.13% |
6 |
同机房 |
1800 |
4500 |
28682 |
52749551 |
98.15% |
第1、2项看出,并发量600-1000,域名解析效果最好,命中率基本稳定在100%;
第3、4项看出,并发量2000-3000,域名解析效果良好,命中率稳定在99.55%以上;
第5、6项看出,并发量4500,域名解析命中率开始降低,命中率稳定98.13%以上;
3. 同机房本地DNS与外网DNS压测对比
序号 |
DNS |
DNS数量 |
时长 |
并发 |
qps |
总数 |
命中率 |
1 |
本地 |
16 |
300 |
600 |
22148 |
6750701 |
100.00% |
2 |
外地 |
16 |
300 |
600 |
22822 |
6955956 |
100.00% |
3 |
本地 |
16 |
300 |
1000 |
11894 |
3627395 |
100.00% |
4 |
外地 |
16 |
300 |
1000 |
9512 |
2899953 |
100.00% |
5 |
本地 |
16 |
300 |
2000 |
4520 |
1380189 |
99.88% |
6 |
外地 |
16 |
300 |
2000 |
5122 |
1564401 |
99.83% |
7 |
本地 |
16 |
300 |
3000 |
3889 |
1206198 |
98.33% |
8 |
外地 |
16 |
300 |
3000 |
3775 |
1157477 |
99.47% |
9 |
本地 |
16 |
300 |
4000 |
3241 |
1120274 |
92.60% |
10 |
外地 |
16 |
300 |
4000 |
3418 |
1055771 |
98.73% |
第3、4项看出,并发量1000,压测本地与外地域名有优势,体现在qps与总数;
第5、6项看出,并发量2000,压测外地与本地域名有优势,体现在qps与总数;
第7、8、9、10项看出,并发量3000-4000,压测外地与本地域名优势更加明显;
1. 跨机房稳定性测试
序号 |
对象 |
时长 |
并发 |
qps |
总数 |
命中率 |
1 |
跨机房 |
900 |
600 |
13131 |
11877769 |
99.99% |
2 |
跨机房 |
900 |
1000 |
14173 |
12834572 |
99.93% |
3 |
跨机房 |
900 |
2000 |
14727 |
13437553 |
99.18% |
4 |
跨机房 |
900 |
3000 |
14633 |
13555444 |
97.70% |
第1、2项看出,并发量600-1000,域名解析效果最好,命中率基本稳定在99.90%以上;
第3项看出,并发量2000,域名解析效果良好,命中率稳定在99.1%,出现丢包情况;
第4项看出,并发量4000,域名解析效果中良,命中率稳定在97.7%,丢包情况严重;
1. 同机房与跨机房性能对比
序号 |
对象 |
时长 |
并发 |
qps |
总数 |
命中率 |
1 |
同机房 |
3600 |
600 |
24962 |
89991308 |
100% |
2 |
跨机房 |
900 |
600 |
13131 |
11877769 |
99.99% |
3 |
同机房 |
900 |
1000 |
29751 |
26930924 |
99.98% |
4 |
跨机房 |
900 |
1000 |
14173 |
12834572 |
99.93% |
5 |
同机房 |
900 |
2000 |
27961 |
25346056 |
99.82% |
6 |
跨机房 |
900 |
2000 |
14727 |
13437553 |
99.18% |
7 |
同机房 |
900 |
3000 |
30646 |
27860677 |
99.55% |
8 |
跨机房 |
900 |
3000 |
14633 |
13555444 |
97.70% |
9 |
同机房 |
1800 |
4500 |
28489 |
52402263 |
98.13% |
10 |
同机房 |
1800 |
4500 |
28682 |
52749551 |
98.15% |
第1、2项看出,并发量600,同机房与跨机房域名解析效果基本持平,命中率都在99.99%;
第3、4项看出,并发量1000,同机房与跨机房域名解析效果开始出现差异;
第5、6项看出,并发量2000,同机房与跨机房域名解析效果差异比较明显;
第5、6项看出,并发量3000,同机房与跨机房域名解析效果差异在2%的命中率;
在qps与域名解析总请求数量上看,任何时刻,本地机房是跨机房的一倍左右;
1. CPU空闲
从趋势图看来并发量达到60000压测,cpu仍然健康,说明压测限制条件不在于cpu。
并发量在600时,cpu最平稳;
出现峰值又逐渐波动降低,开始大量请求涌入,因为性能问题,无法处理太多请求;
后来出现平稳的波动,开始域名功能平稳测试,并发量在4000-12000不等;
2. 网络总输出比特
从趋势图来看,网络输出比特量永远没有达到网卡极限,压侧限制条件不在于网卡
3. 网络总输入比特
从趋势图来看,网络输入比特量永远没有达到网卡极限,压侧限制条件不在于网卡
压测性能瓶颈在于dns服务器本身,而跨机房与同机房的qps与总量相差一倍。并发量1000时,dns服务工作稳定。并发量在3000以上,跨机房丢包率比较严重,大约2.5%。并发在5000以上,同机房丢包率比较严重,大约2.5%。建议尽量避免skydns跨机房访问,搭建同机房的skydns集群,搭建跨机房的etcd集群服务,而同机房的skydns只指向同机房的etcd集群。