问题描述:应用人员反映有好几个页面查询等待一段时间返回502错误,其余页面都正常查询。

网络环境:项目环境是由N台主机部署应用程序,并由nginx配置组成集群提供服务。

通过百度查询502错误一般是指网关错误,往往意味着一个或两个机器已不正确或不完全编程。而在项目中   502错误的问题一般属于后台服务器挂掉的问题,例如:CPU使用过满、数据库连接数过大、内存不足、甚至是内存溢出等等因素诱发导致。

而此次我们在项目中出现问题的页面为地图监控页面,该页面会每分钟调用一次定时查询功能。通过后台的tomcat日志发现并没有报错,此时想到可能是数据库层面的问题,我们通过show variables like "%max_connection%" 查询到数据库最大连接数为200

--查询当前数据库不为Sleep且未被释放的语句:

SELECT count(*) FROM information_schema.PROCESSLIST WHERE COMMAND <> 'sleep';

此时我们查询到的数量稳定在150左右!!!问题就出在这里了,数据量未释放的连接过大,通过dstat命令查看数据库系统CPU的使用情况都高达80甚至是90以上,其实我们去查询这些未释放的语句,大多是地图监控的查询语句。通过客户了解知道,大部分客户都一直开着这个页面且长时间未关闭,且该页面会自动调用自动查询功能,由于以前用户量较少并没有爆发出这个问题。并且通过慢sql查询查询到该语句查询过慢,造成数据库连接过大,且迟迟不能释放。至于为什么是报502错误,自己并没有找到正确答案。通过了解应该是当该连接数量过多且速度过慢时nginx会判定该服务不健康,当集群中所有节点都不健康时,认为服务不存在,会有极短的一段时间对接受的连接直接返回502,即使本该200的url也受此影响。

 解决方法:重构该方法,且优化该慢sql语句。 

 

一次线上的502错误排查问题相关推荐

  1. 读书笔记:线上性能问题初步排查方法

    线上性能问题初步排查方法  首发于并发网,作者:方腾飞 引言 有时候有很多问题只有在线上或者预发环境才能发现,而线上又不能Debug,所以线上问题定位就只能看日志,系统状态和Dump线程,本文只是简单 ...

  2. 线上FullGC频繁的排查

    线上FullGC频繁的排查 问题 前段时间发现线上的一个dubbo服务Full GC比较频繁,大约每两天就会执行一次Full GC. Full GC的原因 我们知道Full GC的触发条件大致情况有以 ...

  3. 线上RPC超时故障排查及后续GC调优思路

    本文记录了一次线上RPC服务调用超时问题的排查流程,排查过程中涉及到 JVM 优化的过程与思路,包括 JVM GC 原理以及问题排查思路,分享出来希望对大家有所帮助. 本文概要 RPC服务异常和排查过 ...

  4. 线上故障如何快速排查?来看这套技巧大全

    简介:有哪些常见的线上故障?如何快速定位问题?本文详细总结工作中的经验,从服务器.Java应用.数据库.Redis.网络和业务六个层面分享线上故障排查的思路和技巧.较长,同学们可收藏后再看. 前言 线 ...

  5. idea本地跑如何看gc日志_线上故障如何快速排查?来看这套技巧大全

    简介:有哪些常见的线上故障?如何快速定位问题?本文详细总结工作中的经验,从服务器.Java应用.数据库.Redis.网络和业务六个层面分享线上故障排查的思路和技巧.较长,同学们可收藏后再看. 前言 线 ...

  6. du -sh 如何找到最大的文件夹_线上故障如何快速排查?来看这套技巧大全

    简介:有哪些常见的线上故障?如何快速定位问题?本文详细总结工作中的经验,从服务器.Java应用.数据库.Redis.网络和业务六个层面分享线上故障排查的思路和技巧.较长,同学们可收藏后再看. 前言 线 ...

  7. mysql 大量close wait_线上大量CLOSE_WAIT原因排查

    近日遇到一个线上服务 socket 资源被不断打满的情况.通过各种工具分析线上问题,定位到问题代码.这里对该问题发现.修复过程进行一下复盘总结. 先看两张图.一张图是服务正常时监控到的 socket ...

  8. Java: 线上故障如何快速排查?来看这套技巧大全(高德地图的总结)

    目录 前言 一 服务器层面 1.1 磁盘 1.1.1 问题现象 1.1.2 排查思路 1.1.3 相关命令 1.2 CPU 过高 1.2.1 问题现象 1.2.2 排查思路 1.2.3 相关命令 二 ...

  9. 线上故障如何快速排查

    前言 上线定位问题的思路很重要,先分析大致方向是哪出现的问题 内存.CPU.恶意攻击.使用的服务,包含 NGINX REDIS MYSQL PHP,最好搞一个监控系统用来实时监控 设置预警值 到达一定 ...

最新文章

  1. 如何卸载 python setup.py install 安装的包?
  2. 智能车竞赛技术报告 | 双车接力组 - 黑龙江工程学院 - 睿龙二队
  3. Android之ListView异步加载网络图片(优化缓存机制)
  4. vue取通过key取value_vue怎么获取radio、checkbox选中的值
  5. java-信息安全(一)-BASE64,MD5,SHA,HMAC,RIPEMD算法
  6. SAP CRM IBASE对应的搜索实现,动态SQL语句的拼装
  7. 目标检测系列(三)——SPPnet
  8. windows聚焦图片为什么不更新了_为什么年轻明星都不愿意接周星驰的戏? 林更新道出了事情的真相|周星驰|林更新|喜剧之王|演员...
  9. 深度解读GoogleNet之Inception 系列
  10. 支付宝在线支付接口开发教程
  11. [datatable]关于在DataTable中执行DataTable.Select(“条件“)返回DataTable的解决方法
  12. 春考本科2018招计算机的学校,山东2018春季高考本科普通批一志愿院校投档情况统计表...
  13. Multisim 10 添加可调电阻
  14. ubuntu的初始密码
  15. 软件测试面试题:所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?
  16. 基于Arduino开发板的文本转语音(TTS)转换器
  17. H5 iOS微信端点击图片触发3Dtouch,导致无法扫描二维码【解决方法】
  18. 机器学习(周志华) 第一章 引言
  19. 9个精品AI开源免费实战项目助你掌握AI工程师基本技能
  20. springboot学习文章

热门文章

  1. 浅谈 Web 网站架构演变过程
  2. 用edge调试安卓或者手机app的样式
  3. 谷歌浏览器出现应用程序无法启动,提示应用程序的并行配置不正确
  4. 基于Citespace和vosviewer文献计量学可视化SCI论文高效写作方法
  5. 从四个维度谈谈如何做好团队管理
  6. u盘启动Linux什么时候可以拔下来,u盘装系统什么时候拔u盘|pe重装系统什么时候拔掉u盘...
  7. 分享一些app的测试点
  8. opporeno7和opporeno7pro的参数对比
  9. oppo a36参数配置
  10. win10打开语言服务器,在 Windows 10 中,部署一个 Go 1.13 语言的本地文档浏览 web 服务器的流程(已缺少 godoc.exe)...