前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【项目实战-9】DNS解析触发母机QPS限频

【项目实战-9】DNS解析触发母机QPS限频

原创
作者头像
Nanako
修改2021-02-24 11:28:01
1.2K0
修改2021-02-24 11:28:01
举报

【问题表现】

项目官网某接口接入CLB后,10台机器,QPS只能打到4.44k, 但通过ip:port 直连后端单台机器 ,QPS能达到9.43k。CLB 连接10 台后端服务器容量,不及IP直联1台服务器的容量。

压测流量链路图如:

jmeter -> node接入层 -> CLB -> 后端10台机器:qps 4.44k,错误率6% ,504超时(Node等待后端超时)

jmeter -> node接入层 -> ip:port -> 后端单台机器:qps 9.43k

【问题分析和排查思路】

1.首先怀疑是CLB限频问题。

从上面的现象来看,引入的变量是CLB,而且波形图也是比较典型的限频问题,所以一开始怀疑CLB是不是做了限频操作。拉了CLB的同学一起来分析,他们比较有经验的提出了排查问题的思路:简化问题,抓包分析。如何简化呢?

  • node接入层固定为一台机器。
  • 后端RS也固定为一台机器。
  • CLB由7层切换为4层,简化链路。    4层链路对应: CVM(node接入层)--  VPCGW   --  TGW  -- RS    7层链路对应: CVM(node接入层)--   VPCGW --  TGW  -- STGW -- RS
  • 从接入层CVM和后端RS分别抓包,以确认是不是CLB中间链路的问题。

2.抓包分析。对接入层CVM的子机和母机,RS的子机和母机分别抓包,没有发现超时包。

3.重新聚焦504 timeout问题,发现Node接入层的响应时间都集中在5秒的倍数上,具有统计学规律。研发同学结合经验推测问题可能出现在DNS域名解析服务上。

4.在母机上使用iptables -t mangle -nvL ,确认是DNS限频问题。

5.在子机上尝试打开DNS缓存服务

代码语言:javascript
复制
yum install -y nscd
systemctl enable nscd
systemctl start nscd

6.修改后验证,问题得已解决。

【总结】

1. 为何母机要有DNS限频?其原因是对内网服务保护。所以一般是没有权限去看母机的一些限制,需要找网络的人去看。

2. 为何抓包没有抓到超时包?其原因是指定port抓包,并没有抓到53端口dns包。比如可以使用tcpdump -i any -w /data/test.cap 命令抓所有的包,缺点是包会比较大。

3. 整个网络链路就像洪水一样,到底被那个环节拦住,是需要一环一环的去分析排查。

【附】开启NSCD DNS缓存服务的优点和缺点

  • 优点
  • 本地缓存DNS解析信息,提供解析速度。
  • DNS服务挂了也没有问题,在缓存服务时间范围内,解析依旧正常。
  • 缺点
  • DNS解析信息会滞后,如域名解析更改需要手动刷新缓存,NSCD不适合做实时的切换的应用,目前对于依赖DNS切换的服务,建议不要开启DNS缓存。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【问题表现】
  • 【问题分析和排查思路】
  • 【总结】
  • 【附】开启NSCD DNS缓存服务的优点和缺点
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档