云平台DNS故障导致网站访问卡顿异常排查过程,wireshark、strace等工具在实际问题排查过程中的应用方法

一、问题现象

        项目上使用华为私有云,前段时间华为升级云平台后,云上用户反馈业务系统出现卡顿,之前几秒可以刷新出来的页面现在需要几十秒。提供了一个比较明显的url和curl调用方法。

10.213.x.xxx:8082/files/login

curl -H "Content-Type: application/json" -H "Tenantcode: XHASZJZXT-370211"  -H "token: xxx" http://localhost:9705/records/dzda/getArchivementMenu?attachCode=JSGC&keyGuid=xxx

二、应用架构分析

        1、登录10.213.x.xxx,根据应用提供的端口号定位到8082端口是个nginx服务(netstat -anp|grep 8082),并且获取到进程id:30923:

        

        使用lsof -p 30923,定位到nginx的安装路径和日志位置:

        

        进入安装路径,可以找到nginx的配置文件路径conf:nginx的配置文件一般是nginx.conf

        

        查看nginx.conf,找到端口号为8082的配置,可以看到不同的后缀其实指向不同的服务。

        

        根据出问题的url找到的后端服务地址和端口,继续通过netstat -anp查找对应的进程id:

        

        执行ps -ef|grep 48420查看java进程的执行信息:可以看到java的配置文件位置、日志位置等信息。

        

        从配置文件中可以看到数据库、redis、ftp等其他关联服务的信息。

        

三、问题排查

        1.分别在跳板机、同段windows主机、同段linux主机上测试,都存在卡顿现象,可以暂时排除边界网络设备的问题;

        2.在跳板机进行测试,开始wireshark抓包,根据IP和端口过滤数据包信息(ip.addr == 10.213.x.xxx and tcp.port == 8082):

        可以看到打开页面后,跳板机给10.213.x.xxx:8082发送了一个GET请求,具体路径是/records/dzda/getArchivementMenu,但是隔了20多秒才收到回包。

        

        3. 同时在跳板机使用wireshark抓包,10.213.3.159上使用tcpdump抓包,并使用tail -f刷新nginx的access.log:

        跳板机发送GET包后,10.213.3.159马上就接收到了。但nginx access日志中出现GET请求的记录要比跳板机发包晚20多秒,并且日志中出现记录后,页面马上打开了。

        

        此时怀疑在159上,在nginx之前还有其他进程阻断了GET请求,排查了redis等服务后,没有发现异常;又百度查了下nginx的机制,access.log中只有请求被正常响应后才会记录该请求,所以nginx刚接收到GET请求并没有记录access日志,要等到后端的服务有正常返回后才进行记录。所以延时应该是产生在java服务处理请求的过程中。

        4. 根据GET请求里面的url后缀:/records/dzda在nginx配置文件中定位到后端的java服务端口是9705。

        

        查到java进程信息和日志位置:/hst/api/records/api/log

        

        5. tail java日志,同时测试异常网站,发现一访问网站就有日志产生,说明nginx第一时间转发给了java进程,但在一些步骤等待时间很长。

        

        6. 从日志中发现不了具体卡在什么调用上,这时可以用strace追踪程序运行过程的各类系统调用:

跟踪文件调用:

        strace -tt -T -v -f -e trace=file -s 1024 -p 48420

可以看到进程打开resolv.conf和/etc/hosts文件后卡住,判断是程序中存在域名,在解析时卡住。

跟踪网络调用:

        strace -tt -T -v -f -e trace=network -s 1024 -p 48420

        

        查到需要解析的域名(主机名)为本机的hostname:host-10-213-3-159

        直接ping host-10-213-3-159进行测试,发现同样需要十几秒才能解析出本机IP。

        

        在ping的同时抓dns 10.255.89.8的包,发现域名解析请求发送后会延时几秒后才收到dns服务端(10.255.89.8)返回的server failure的包。

        

        同时在华为云互联网区主机上ping主机名或其他无法解析的域名,dns服务器会马上返回no such name的回包。

        

        可以确定问题原因是因为华为云DNS(10.255.89.8)解析未知域名时出现异常,无法快速返回无法解析的信息,导致程序一直在等待解析。

四、问题解决

        在/etc/hosts 中添加一行,指定host-10-213-3-159对应的IP:10.213.3.159,网站访问正常。

        

        或者把/etc/resolv.conf中dns记录注释掉也可以,但可能影响华为云其他服务。

  • 后续跟进

        华为云金宏网的主机默认配置的dns都是云内dns 10.255.89.8/9,其他主机上的程序如果在代码中存在域名的调用也会出现类似的卡顿现象,需要华为尽快修复dns服务器解析卡顿问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/725948.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java学习笔记】异常处理

生活中我们在使用一些产品的时候,经常会碰到一些异常情况。例如,使用ATM机取钱的时,机器会突然出现故障导致无法完成正常的取钱业务,甚至吞卡;在乘坐地铁时,地铁出现异常无法按时启动和运行;使用…

电脑怎么卸载软件?多个方法合集(2024年新版)

在电脑的日常使用中,我们经常需要安装各种软件来满足不同的需求,但随着时间的推移,可能会出现一些软件不再需要或需要更换的情况。此时,及时从电脑上卸载这些不必要的软件是非常重要的。它不仅可以释放硬盘空间,还可以…

第二证券股市资讯:股票中什么叫龙头?

龙头,也就是龙头股,指的是某一职业中有必定影响力和号召力的股票,龙头股的涨跌通常对其他同职业板块股票的涨跌有必定演示和引导作用,是一种风向标一般的存在。龙头股的技能面表现和成交量都会比同时刻的大盘和地块要强。 具体分…

【尚庭公寓SpringBoot + Vue 项目实战】移动端项目初始化(十九)

【尚庭公寓SpringBoot Vue 项目实战】移动端项目初始化(十九) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】移动端项目初始化(十九)1、 SpringBoot配置2、Mybatis-Plus配置3、Knife4j配置4、导入基础代码5、导入接口定义代码6…

Python语言修改控制台输出文字的颜色和背景颜色

Python语言修改控制台输出文字的颜色和背景颜色 格式显示模式字体颜色背景颜色文字加效果显示类 格式 \033[显示模式;字体颜色;背景颜色m 显示模式 显示模式格式将文本颜色和背景颜色重置为默认值,取消所有其他文本属性\033[0m高亮(加粗)\03…

华为OD机试 - 部门人力分配 - 二分查找(Java 2024 D卷 200分)

华为OD机试 2024D卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(D卷C卷A卷B卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测…

redis-实战篇(8)达人探店

8、达人探店 8.1、达人探店-发布探店笔记 发布探店笔记 探店笔记类似点评网站的评价,往往是图文结合。对应的表有两个: tb_blog:探店笔记表,包含笔记中的标题、文字、图片等 tb_blog_comments:其他用户对探店笔记的…

最新PHP仿猪八戒任务威客网整站源码/在线接任务网站源码

资源介绍 老规矩,截图为亲测,前后台显示正常,细节功能未测,有兴趣的自己下载。 PHP仿猪八戒整站源码下载,phpmysql环境。威客开源建站系统,其主要交易对象是以用户为主的技能、经验、时间和智慧型商品。经…

上海亚商投顾:创业板指低开低走 先进封装概念午后走强

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日缩量震荡调整,深成指、创业板指跌超1%。车路云概念延续强势,长江通信4连板&am…

LVGL开发教程-FreeRTOS中的LVGL

系列文章目录 知不足而奋进 望远山而前行 目录 系列文章目录 文章目录 前言 重要步骤 lv_tick_inc(x) lv_timer_handler() 1. 声明一把锁 2. 初始化这把锁 3. 创建一个任务 4. 编写任务的内容 完整示例代码 总结 前言 在嵌入式系统开发中,使用LVGL&…

Docker定位具体占用大量存储的容器

监控告警生产环境的服务器磁盘分区使用率大于90%,进入服务器查看Docker 的 overlay2 存储驱动目录中占用很大,很可能是某个容器一直在打印日志,所以需要定位到是哪个容器,然后进行进一步排查。 然后进入到overlay2中查看是哪个目录…

优化改进YOLOv5算法之Shift-ConvNets,具有大核效应的小卷积核,效果提升明显

目录 1 Shift-ConvNets模块原理 1.1 Decomposition and Combination of Convolution 1.2 Sparse Dependencies of Large Convolution Kernels 1.3 Intermodule Feature Manipulation 2 YOLOv5中加入Shift-ConvNets模块 2.1 common.py文件配置 2.2 yolo.py配置 2.3 创建…

【Spine学习13】之 制作受击动画思路总结(叠加颜色特效发光效果)

绑定IK腿部骨骼容易出错的一种方式, 要记住 如果按照错误方式绑定骨骼,可能移动IK约束的时候会另腿部的弯曲方向相反了 : 上节分享了攻击动作的制作思路总结, 这节总结受击思路。 第一步: 创建一个新的动画&#xff1…

专业140+总分400+武汉理工大学855信号与系统考研经验电子信息与通信工程,真题,大纲,参考书

专业855信号与系统140,总分400,今年顺利上岸武汉理工大学,总结一下自己的复习经历,希望对报考武理工的同学有所帮助。专业课:855信号与系统 首先教材: 《信号与系统》高等教育出版社 作者:刘泉…

Vue65-vue-resource:ajax请求

vue-resource是vue的插件库,用vue.use(xxxx)使用插件。 1、安装 2、引入和使用 这个库,维护的频率不高了。还是建议使用:axios,vue-resource只是了解即可。

1969python房屋租赁管理系统mysql数据库Flask结构BootStrap布局计算机软件工程网页

一、源码特点 python Flask房屋租赁管理系统是一套完善的web设计系统mysql数据库 ,对理解python编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 python flask 房屋租赁管理系统 开发环境pycharm mysql …

大模型的下一站:AI Agent!

前言 现在各家基本上都有自己的大模型产品,现在的重点都是在找商业模式,以及扩展大模型的应用场景上。所以大家做APP、做Copilot也就不足为奇,都是为自己找出路的做法。但从作者的角度,Copilot只是传统互联网应用到大模型应用的过…

汇凯金业:现货黄金技术分析及其应用

现货黄金技术分析是一种通过市场价、量、时、空间四个元素的研究,利用图表表达数据,从而预测未来价格走向的方法。虽然技术分析并非完美无缺,但它在投资决策中起到了重要作用。以下是现货黄金技术分析的详细介绍及其应用方法。 技术分析的基…

1分钟告诉你电脑微信文件夹储存在什么位置!

在日常生活中,微信已经成为我们不可或缺的社交工具之一,我们使用它来与亲朋好友保持联系,分享生活中的点滴。然而,随着我们在微信中发送和接收越来越多的信息、图片、视频等内容,微信所占用的存储空间也逐渐增加。 因…

做一个架构师需要什么能力?

作为一个架构师,需要具备多方面的能力来确保项目的顺利进行和系统的成功设计。以下是架构师所需的主要能力,按照不同的类别进行归纳和分点表示: 技术能力 编程能力:架构师通常是一个开发团队中技术较为出色的人员之一&#xff0…