记一次网站故障排查过程(nginx 504状态码、 upstream timed out (110: Connection timed out)以及jbd2引起IO高

news/2024/5/9 18:27:26/文章来源:https://blog.csdn.net/Nightwish5/article/details/122385322

一、问题描述

客户侧反馈无法正常访问系统,页面转圈,时好时坏,访问不稳定。


二、系统环境:

机器环境:UOS 、 nginx 、php(对接其他服务器kingbase 、钉钉、redis 、KF)
ELB:192.168.1.100
web1: 192.168.1.101 ,web2: 192.168.1.102


三、流量流向示意:

用户访问系统 > ELB > nginx > web1/web2



四、排查过程

4.1

1、按巡检项检查系统所要启动的端口和服务,均已启动。
2、检查网闸,telnet访问网闸正常。tcping 端口也是通的。
3、检查PHP日志文件laravel.log ,无异常。
4、但仅有1.101服务器的nginx的error.log发现报错upstream timed out 
upstream: "http://192.168.1.100:8080/xxx/xxxid", 且同时间段的access.log有504异常状态码;
而129.72是没有time out 的error.log日志。
5、咨询华为云ELB工程师ELB状况。反馈ELB状况无异常,但ELB负载均衡查不了日志。
根据nginx的报错日志,重启101服务器,且修改101服务器的nginx.conf添加proxy_connect_timeout 300等配置项

4.2

次日,客户侧还是反馈系统转圈现象。 101服务器error.log仍有报timed out信息。昨日操作101服务器的时候,发现操作时,有偶尔卡顿现象。
(下面是101服务器的状况)1、top指令下load average数值很高(8.39,6.11,4.92)。wa值也很高(99)
这说明磁盘读写紧张,I/O等待久。
2、使用iotop指令查看异常I/O信息。发现jdb2/vda2-8的IO>达到了90%+ 。
参考网上资料,操作系统自身jbd2高会引起IO高的问题,会导致高load average ,卡顿。3、为了保证业务的正常运作,晚上将ELB切成单边形式,只让web2进行服务。 
web1关闭外网业务后,还是会出现操作卡顿的现象。重启过机器后还是有卡顿现象。

4.3

服务器系统是统信UOS
1、分析syslog、kern.log  ;ps -exf| grep jdb2;  pstree pid 、 strace -p pid 
systemctl set-default multi-user.target
systemctl restart default
reboot -f (这过程中重启了2次,第一次直接卡死在图形化界面。)(关闭GUI桌面,改成字符(黑窗口)系统) 

4.4 其他角度的排查思路

#网络方面
1、筛选error.log日志time out出现时间段12:00~14:00 ,此时是午休时间段,非系统使用高峰期。
但还是出现了9条time out记录,该系统的PV量不算很大,就处理类似OA流程的操作。单台机器的网络带宽是 100Mbit/s ,网络性能是过剩了。
那可能不是网络问题了。网络的话要么全挂,要么全好。



五、异常截图信息

5.1 nginx的error.log和access.log

#error.log
2022/01/04 20:37:30 [error] 11362#11362: *7694845 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 100.64.14.178, server: _, request: "GET /ticket/index?page=1&size=10&status[]=3&node_status=true HTTP/1.1", upstream: "http://192.168.1.100:8080/xxx/index?page=1&size=10&status[]=3&node_status=true", host: "xx.com.cn", referrer: "https://xx.com.cn/xx/"#access.log
100.64.14.178 - - [04/Jan/2022:20:37:30 +0800] "GET /xxx/index?page=1&size=10&status[]=3&node_status=true HTTP/1.1" 504 176 "https://xx.com.cn/xx/" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/19C56 AliApp(DingTalk/6.3.20) /22475258 Channel/201200 language/zh-Hans-CN UT4Aplus/0.0.6 WK" 

5.2 系统卡顿截图

在这里插入图片描述

iotop指令(按p键, 按o键,按a键 )

io>值高的:jdb2
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、排查结论

初步判断是( jbd2进程导致磁盘 io 高)系统内核bug导致IO阻塞,影响到了系统服务(192.168.1.101)。
最开始因为是nginx的问题。但最终后面这IO高也会导致nginx出现time out

UOS排查过程/结论

6.1 Xorg.0.log日志

客户的xorg 爆出(EE) modeset(0): glamor initialization failed 。 看来窗口管理有问题。

ls -l | egrep ^[^d] | awk '{print $(NF)}' | xargs -i grep -H "glamor" {}

在这里插入图片描述

dmesg日志

看的出来jbd2存在一些问题,它是日志的相关服务 journaling block driver 文件系统的日志功能
根据之前的现象看
1、可能是进程的写入过于频繁 --经过查看没有进程对主机操作,目前看就是日志的进程再读写
2、有可能磁盘存在性能瓶颈 --需要用户确认磁盘的性能
进一步查看dmesg日志,这个io高可能是用户再做perf测试过程中引起中,网络异常导致的这个IO的高的现象,因为内核日志中有perf的中断报错。实际表现在日志的读写方面。
(下图最左边的绿色的字体。 从5秒开始 到90000秒,在报错。 (大概意思是网络异常 perf中断 ,导致io阻塞))
在这里插入图片描述
目前由于问题无法复现,建议用户直接用非图形化去规避吧



重点术语

1、 load average
top命令中load average显示的是最近1分钟、5分钟和15分钟的系统平均负载数值。一个类比的例子:
数值0.00 和 1.00之间 表示目前桥面上几乎没有任何的车流,道路畅通。 
数值1.00 表示刚好是在这座桥的承受范围内,车流会有些堵。
数值超过 1.00,那么说明这座桥已经超出负荷,交通严重的拥堵。2、 wa
wa, IO-wait : time waiting for I/O completion
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,
这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的。3、 iotop
查看IO占用的监控工具。 IO>列的数值越高,说明该程序是高I/O消耗程序。4、jdb2
jbd(journaling block driver) 文件系统的日志功能,jbd2是ext4文件系统版本;可以肯定的是对文件系统的操作太频繁,会导致IO压力过大。日志块设备(JBD)为文件系统日志提供了一个独立于文件系统的接口。
The Journaling Block Device (JBD) provides a filesystem-independent interface for filesystem journaling. 



参考博客

https://blog.csdn.net/lcj_star/article/details/76672748 《nginx报504超时错误》
https://blog.aliasmee.com/post/questions-about-proxy-connect-timeout-on-nginx/ 《关于Nginx proxy_connect_timeout 的问题》
https://blog.ohyeahwoo.com/?p=792 《访问WEB报timeout》https://cloud.tencent.com/developer/article/1465600 《性能分析之又见jbd2引起IO高》
https://easyice.cn/archives/328 《jbd2进程导致磁盘 io 高的分析》https://madflojo.medium.com/troubleshooting-high-i-o-wait-in-linux-358080d57b69   (这篇写的很好)
https://serverfault.com/questions/155882/wa-waiting-for-i-o-from-top-command-is-big/155887无意间也发现iotop可以看到后台运行的进程(指nohup 、& 、setsid执行的后台脚本)
也感谢运维岗的各位大佬的帮助。通过这次故障 学到不少知识。

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

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

相关文章

大型网站限流算法的实现和改造

最近写了一个限流的插件,所以避免不了的接触到了一些限流算法。本篇文章就来分析一下这几种常见的限流算法 分析之前 依我个人的理解来说限流的话应该灵活到可以针对每一个接口来做。比如说一个类里面有5个接口,那么我的限流插件就应该能针对每一个接口就…

Nginx 通过 certbot 为网站自动配置 SSL 证书并续期

目录 一、背景知识1.1、http 和 https 是什么?1.2、SSL/TLS 是什么?1.3、为什么要部署 https?1.4、怎么部署 https 呢?1.5、怎么获得 SSL 安全证书呢?二、Let’s Encrypt 及 Certbot 简介2.1、Authenticators 和 Insta…

部署社区网站,搭建SVN、nginx、PHP,部署MFS并挂载,发布上线

概述: 社交网站的第一个版本部署在LNMP平台之上,前段为Nginx服务器,通过fastcgi协议访问后端的PHP服务器。为了保证数据安全,要求搭建MySQL数据库主从集群。 项目介绍: 本项目案例结合SVN、LNMP和MySQL三种环境&#x…

《大型网站架构技术》系列分享专栏

2019独角兽企业重金招聘Python工程师标准>>> 在这里整理一些大型网站架构方面的技术文章,包括大型网站存储,架构,静态化处理,高并发,高性能方面的问题处理,解决方案等知识 《大型网站架构技术》…

阿里云官方网站免费套餐怎么抢

阿里云推出包含云服务器 ECS、负载均衡、云数据库 RDS、云数据库 Redis 版、云数据库 Mongodb 版、弹性公网 IP、CDN、对象存储 OSS、文件存储 NAS等40核心云产品,6个月免费使用何为免费套餐,其实就是让你先体验,觉得好用,易用&am…

一步步构建大型网站架构

2019独角兽企业重金招聘Python工程师标准>>> 之前我简单向大家介绍了各个知名大型网站的架构,亿万用户网站MySpace的成功秘密、Flickr架构、YouTube网站架构、PlentyOfFish 网站架构学习、WikiPedia技术架构学习笔记。这几个都很典型,我们可以…

html:demo网站学习

学习网站https://www.sc-edu.com 涉及知识如下&#xff1a; 目录HTML < ul> 标签HTML lang 属性HTML 标签的 alt 属性CSS 选择器CSS position绝对定位&#xff1a;absolute relativeCSS background-position 属性CSS3 animation(动画)属性 与 keyframes 规则CSS paddin…

html:写网站时遇到的问题及解决

目录01 绝对路径改相对路径出错&#xff1a;图片无法显示02 两端文字空开&#xff0c;且每行这两端文字对齐03 在一行&#xff0c;一侧显示文字&#xff0c;一侧显示图片04 动画效果&#xff0c;文字乱跑05 padding 和 margin01 绝对路径改相对路径出错&#xff1a;图片无法显示…

四招避免SEO优化过度

在对网站进行优化的过程中&#xff0c;很多人往往会将所看到的优化方法不分青红皂白的一律应用&#xff0c;但这样一来就往往会出现优化过度的现象&#xff0c;优化过度甚至比不优化还要对网站有危害&#xff0c;只需要注意以下四个方面&#xff0c;就可以避免在优化网站中经常…

MOSS通过此命令注册模板,web应用程序可以根据stp模块生成网站集

注&#xff1a;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin stsadm –o addtemplate –title 凤凰小学模版 –filename d:\fenghuangxiaoxue.stp MOSS部署常用的stsadm命令行 常用的stsadm命令行参数有&#xff1a; 1、installfeature、uni…

如何部署互动百科的开源wiki建站系统

最近想在技术部门内部搭建一个知识共享平台&#xff0c;经过一番了解和相关资料的查阅&#xff0c;选定了互动百科的开源wiki系统。选定互动wiki&#xff08;下文简称hdwiki)&#xff0c;主要的原因有如下几个方面&#xff1a; 1.中文版。这样对于我个人或者团队内部成员而言&a…

国外人经常上的网站,即全球各个领域最大的互联网网站

由于身处的行业原因&#xff0c;我经常上中国以外的互联网&#xff0c;其实全世界的网民跟国内的网民差不多&#xff0c;他们也经常上网&#xff0c;玩空间、网络视频、分享照片、写博客。由于国内对于互联网的封锁&#xff0c;所以国内大部分的童鞋并不了解外国人的上网都去哪…

分享一个交友网站源码-类Facebook

源码地址&#xff1a; https://gitee.com/tonygeli/social

wordpress账号无法登陆_外贸独立站Wordpress+WooCommerce建站记录贴

一、打开SiteGround网站&#xff0c;进行虚拟主机购买二、选择WooCommerce虚拟主机&#xff0c;第一个只能建一个网站&#xff0c;第二个建立无数个网站&#xff0c;第三个更贵&#xff0c;以后升级可选&#xff1b;我选择第二个&#xff1b;三、在购买的时候在SiteGround上选择…

VS2012下开发MVC4网站(EF出现找不到元数据)

这个错误出现的莫名其妙,在项目里,连了两个数据库,一个2008,一个mysql5.5,调试运行,一点问题都没有,但是发布到IIS7里面,就提示找不到元数据了. 找了好多办法,什么该连接串中的&quot;为,还有一个把metedata的配置,改为具体的名称res://*/test.csdl...把*改成具体的命名空间…

婚纱网站php源码,婚纱摄影宣传网站模板(PHP 源码)

★模板安装方法★1、将web文件夹里的文件覆盖到网站根目录.2、安装dede系统。(如果您已经安装,请跳过本步.)直接运行&#xff1a;http://www.yourname.com/install/index.php (请换成你的域名)3、还原数据库&#xff1a;1)进入dede后台&#xff0c;找到‘系统’-‘数据库备份/还…

php程序设置ip黑名单,网站访客IP黑名单源码有效屏蔽ip(PHP实现,CC防火墙)

在其他地方看到的&#xff0c;感觉不错就 分享一下..网站IP黑名单2组源代码可有效阻止ip(在PHP中实现&#xff0c;可以用作CC防火墙)&#xff0c;一组是单页banIP版本(支持PHP5.4或更高版本&#xff0c;未选择服务器环境) &#xff0c;系统未选中)一组是整个站点的banIP版本(支…

qq修改实名认证已达上限_实名认证修改申请网站 腾讯游戏王者荣耀、战场:健康系统实名认证修改方法...

解除成长守护平台可以解除健康系统的限制吗&#xff1f;成长守护平台和健康系统都属于腾讯未成年人保护体系&#xff0c;二者相互独立运行&#xff0c;解绑成长守护平台不能解除健康系统的限制。腾讯健康系统实名认证修改方法 仅可修改一次 (未成年无效) 这个修改方法 这两天都…

搜索引擎排名都选乐云seo_到9012年搜索引擎都不一定会死,但百家号真的可以用来做SEO优化...

小谷这两天被《搜索引擎百度已死》这篇文章刷屏了&#xff0c;文章主旨就是指责百度搜索结果一半以上会指向百度自家产品&#xff0c;尤其是百家号&#xff0c;而百家号充斥着大量营销和质量低劣的内容&#xff0c;也导致百度搜索结果的内容质量大幅下滑。意思就是百度正在利用…

visual studio 2013发布网站

visual studio 2013发布网站 转载于:https://www.cnblogs.com/Gxiaopan/p/4341610.html