499问题查询解决

STM32外围电路硬件解析 复位 :让MCU回到最开始的状态。并且从头开始,重新执行程序 我们什么时候需要复位? 1.烧录的时候 2.程序跑飞了的时候 3.上电复位(上电的时候需要复位) 复位方式: 1.上电复位: --- 一定要有 MCU的Reset是复位引脚,当这个引脚为低电平时, 阅读详情

本文记录了我从遇到 499 问题,到解决的全过程。

如果有小伙伴比较急,需要知道问题可能出现在哪里,请直接看 解决思路 一栏

随着公司的发展,系统也越来越健全。近期使用了阿里云的 sls 服务来分析 nginx 系统日志,并设立了告警功能。

各种平时注意不到的异常情况发生了。

系统环境

经典的 LNMP

什么是 499

解释是:client has closed connection

这很有可能是因为服务器端处理的时间过长,客户端“不耐烦”了。

解决思路

先考虑程序是否有问题,定位某个接口,做详细分析。

再考虑服务是否有问题,是不是 MySQL 的连接数量太少、是不是 PHP-FPM 的进程数量不够。

最后考虑用户行为。

第一次499处理

当我看到运维同事报过来的第一个 499 数据的时候,我感觉有点莫名。

之前没有处理过相应的问题,第一次拿到这个问题,还有点棘手。

大致分析了一下,大部分的请求响应都还算可以,在 0.5s 以内,部分情况会超过 1s。

由于占比不大,所以最终也没有得出什么结论。

也就不了了之了。

解决日志上报失败得来的惊喜

一些信息

我们部分接口会放在响应之前上报相关日志,因为是同步的,所以上报的时间会算在接口响应中。

问题

领导找到,说商品列表的响应速度太慢了,让查一下原因。

定位问题

既然是响应慢,那我得知道慢在什么地方,才好解决问题。

于是用了很暴力的解决方式,就是在我认为可能出现问题的节点放入调试时间,最终通过相减得到每个环节需要的时间。

最终发现,除了上报,其他所有的相应都很快。

然后查了一下上报日志,最近果断没有相关的日志。

再看到有其他接口的日志,略微比较一下之后,发现了问题。

为了好分析线上报的一些问题,我将响应数据一起上报了,不知道是怎么回事,现在上报数据一大就会出现问题。

所以就去除了上报数据,上报成功,接口响应也提升了。

499变少了

由于接口响应变快了,相关的 499 也减少了。

收到了告警邮件

运维同事偷偷的配置了告警邮件,并写上了我,然后,被轰炸了。

再上征途

一些信息

我们会在一些平台投放广告,前人用了 talking data 的服务(简称 TD),TD 对接第三方平台,TD 再通知我们。

奇怪的现象

我分析了一下日志。

从分布上,激活的接口(TD 通知的接口)报 499 的概率非常之高。

从响应时长上,激活的接口最高达到了 60秒。

然后,又针对激活的接口做仔细分析,最终发现,在报 499 的时候,激活接口的响应时间会有个 增长 的趋势。

猜测

现在问题出现了,那是什么原因造成的呢?

1、猜测一

猜测:因为激活数量一直在递增,目前已经达到千万级,可能是没用到索引。

实际:有用到索引

2、猜测二

猜测:因为激活数据会产生插入更新,索引排序时间过长,导致阻塞。

实际:最终发现不是,这个没有验证。

3、猜测三

猜测:MySQL连接数量不足

实际:远远没达到(有监控可以直接看出,没有监控的话,只能根据数据分析了)

4、猜测四

猜测:PHP-FPM 进程不足,导致阻塞

实际:巅峰情况下只使用了 1/3

分析PHP慢日志

在所有猜测都不是的情况下,最终看了一下线上的 PHP 慢日志(这个一般不会开启)。

有了不一样的的发现。

在激活接口出现 499 的时间段内,经常出现 session_start 的慢日志(配置的是超过 3s 会出现慢日志)。

那么是为什么呢?

我将其归为 session_start 的时候,需要文件写权限(默认的,没有更改),而当出现并发的时候,这个时候争夺文件锁的时候,发生了阻塞,导致后续请求阻塞了,最终超时。

想起之前本地环境也在 session_start 时出现过问题,就有了大致的解决方案。

1、不启动 session。事实上是可以的,因为是单纯的接口,不需要使用 session。

2、设置 session_save_handler 为 redis 和 memcached,他们在高并发下的能力更强。

最终,我关闭了 session,观察了一段时间,没有告警了。

一些思考

或许有些小伙伴已经想到了,既然是接口,理论上 session 是不会重复的。

这里有一个信息,talking data 使用的是 Apache-HttpClient/4.5.2。查了一下,它本身会处理 set-cookie 的操作,下一次请求就会带上 cookie。所以就尴尬了,由于同一个 PHPSESSID 的高并发,所以文件锁阻塞了。

最后

感觉自己解决问题的时候,先想的是不是别人的问题造成的,这个想法和处理方式是有问题的。

应该是先从本身分析,当本身没问题了,再去找外围的问题,会更好的解决问题。

从ResNet到EfficientNet:特征金字塔网络(FPN)在不同骨干网中的适配指南 本文深入探讨了特征金字塔网络(FPN)与ResNet、VGG、EfficientNet等主流骨干网络的适配策略。文章详细解析了FPN的核心原理,并针对不同骨干网络的特征提取特性,提供了通道对齐、参数量估算及迁移学习的系统化指南,旨在帮助开发者在目标检测等视觉任务中构建高性能、高效率的模型。 阅读详情

相关推荐

告别单调!3种方法给VS2019换上VSCode同款NightOwl主题(附字体优化技巧)

本文详细介绍了三种将VSCode热门NightOwl主题移植到VS2019的方法,包括扩展市场直装、官方主题库导入与增强以及手动调色实现像素级复刻。同时提供了字体优化与视觉增强技巧,帮助开发者打造更舒适的编码环境。

weixin_28836989的博客 212

一个很少遇到的网络状态码 -- 499

作为 4xx 开头状态码,表明的是这个请求的过程中是客户端发生了错误。再切换服务的时候,在上一个请求接口没有返回前,发起新的接口请求并取消上一个请求,这个逻辑是符合预期的。查阅代码得知,是在某个业务场景,用户点击的服务不同,需要调用接口查询价格,在查询价格的接口下存在这个错误报警。前段时间运维拦截到了一些 499 网络状态码报警,我对该问题进行了简单排查,本文对该状态码做简单的一个介绍。尽管在客户端侧只能看到一个被 cancel 的请求,但是这个请求在 nginx 拦截到的状态码是 499。

不定时分享最优质的网络技术与教程,满满的干货。 7801

Ubuntu声卡检测与故障排查:从基础命令到驱动修复

本文详细介绍了在Ubuntu系统中进行声卡检测与故障排查的完整流程。从使用lspci、aplay等基础命令识别硬件,到排查驱动冲突、修复权限问题,再到调整PulseAudio高级配置,提供了一套系统性的解决方案。文章结合实战案例,帮助用户快速诊断并解决Ubuntu系统常见的“无声”问题,恢复音频功能。

g2h3i4j5的博客 228

SLB访问日志分析:基于客户端来源和HTTP状态码的实践

阿里云负载均衡SLB可以对多台云服务器(ECS)进行流量分发,支持TCP的四层负载均衡和基于HTTP/HTTPS的七层负载均衡。使用SLB可以降低单台ECS异常时对业务的冲击,提升系统可用性。同时,结合弹性伸缩服务(ESS)动态扩容、缩容后端服务器可以快速应对业务流量的变化。 SLB七层访问日志内容丰富,提供近30个字段,例如:收到请求的时间、客户端的I...

weixin_34119545的博客 441

一文带你看懂SAP-HANA的基本架构与原理

创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥。

丷江南南的博客 5077

FPGA实战:手把手教你配置4个Aurora 8B/10B IP核共享时钟(附完整工程文件)

本文详细介绍了在Xilinx FPGA上配置四个Aurora 8B/10B IP核并实现时钟共享的实战指南。从工程规划、IP核基础配置到共享逻辑的实现,再到多核时钟域与复位架构的设计,以及时序约束与调试技巧,提供了完整的解决方案和可复用的工程文件。特别强调了GT参考时钟的共享和复位信号的处理,帮助工程师高效解决多通道高速串行通信的设计挑战。

weixin_30879169的博客 416

nginx 499错误处理及nginx的配置参数

近期响应集团降本增效,节省ci,stg机器,我们项目开始容器化,在改造过程中,链路的访问发生了变化,导致出现了499,解决方如下访问链路: 域名—> ELB (内网访问) —> openrestry (stg环境,支持自定义lua脚本) —> ELB(提供服务固定ip) —> (容器集群)POd。

勿在浮沙筑高台 1万+

分子对接中的相互作用特征分析(目视筛查)

介绍分子对接的相互作用特征,以及如何通过这些特征进行目视筛查

recher_He1107的博客 5759

php输出和仍执行,深入剖析浏览器退出之后php还会继续执行么

前提:这里说的是典型的lnmp结构,nginx+php-fpm的模式如果我有个php程序执行地非常慢,甚至于在代码中sleep(),然后浏览器连接上服务的时候,会启动一个php-fpm进程,但是这个时候,如果浏览器关闭了,那么请问,这个时候服务端的这个php-fpm进程是否还会继续运行呢?今天就是要解决这个问题。最简单的实验最简单的方法就是做实验,我们写一个程序:在sleep之前和之后都用file...

weixin_36201981的博客 496

海康H304NAS 刷机飞牛

本文旨在分享如何将闲置的海康威视H304 NAS刷入飞牛NAS系统,并利用iStoreOS作为安装媒介。之前因为使用极空间NAS,这台H304闲置已久。最近尝试了飞牛NAS,在虚拟机上安装后挂载极空间的电影资源,体验不错,于是决定重新折腾这台H304。我个人喜欢尝试新系统,之前经常更新H304的固件,但设备总在使用一两年后出现故障,需要联系技术清理日志才能恢复。最后一次设备“变砖”后,连技术人员也联系不上了,自己尝试修复未果,设备就此闲置两三年。

u012985257的博客 2747

告别regsvr32!易语言调用大漠插件dm.dll的免注册实战(附Win7/10/11避坑指南)

本文详细介绍了易语言如何免注册调用大漠插件dm.dll的实战方法,通过`dmreg.dll`实现真正的免注册调用,规避了传统`regsvr32`注册方式带来的权限和兼容性问题。文章包含核心原理剖析、易语言实现细节、多系统兼容性方案及高级应用场景,帮助开发者实现绿色化部署,提升自动化脚本开发效率。

weixin_42553471的博客 303

400错误是什么原因_499错误是什么?499错误的原因及解决方法

​HTTP状态码出现499错误有多种情况,499错误是什么?下面我们来学习Nginx 499错误的原因及解决方法。日志记录中HTTP状态码出现499错误有多种情况,比如nginx反代到一个永远打不开的后端,日志状态记录就会是499、发送字节数是0。​经常有用户反馈网站系统时好时坏,因为线上的产品很长时间没有修改,所以前端程序的问题基本上可以排除,于是就想着是Get方式调用的接口不稳定,问了相关人员...

weixin_39960019的博客 1158

GraphRAG深度解析:架构设计与实战案例

生成模块结合检索到的图数据和用户输入的查询,生成高质量的文本输出。通过结合图数据库中的知识,模型可以更准确地回答用户的问题,提供更优质的客户服务。通过分析用户的行为和偏好,结合图数据库中的知识,模型可以为用户提供个性化的推荐。:通过图数据库存储和检索结构化的知识,为语言模型提供丰富的背景信息,提升生成内容的质量和准确性。:选择合适的图数据库,如Neo4j、OrientDB等,以支持高效的图数据存储和检索。:利用图数据库的高效检索能力,快速找到与用户查询最相关的图元素,提高系统的响应速度。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1593

nginx日志中出现499状态码

参考链接: https://www.jianshu.com/p/aa5a06fef39c聊聊nginx报错499问题 https://www.iteye.com/blog/kingj-1457384proxy_ignore_client_abort on https://blog.51cto.com/yucanghai/1713803服务器排障 之 nginx 499 错误的解决 ...

无痕的博客 3027

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

499 报错处理

499 报错处理 项目运行过程中发现诸多接口不太正常,经过排查发现nginx 访问日志有很多499报错,同时我们使用的Laravel框架有防止CSRFToken错误报错就是499,经过几次排查,发现该报错信息不是Laravel报的,而是nginx本身的报错信息,在网上查阅资料得知: 当使用nginx进行反响代理时,如果访问量比较大,或者单个请求耗时比较长时,nginx代理服务器会关闭该连接,而处理请求的nginx就会处理为499错误! 经过排查,该服务器负载正常,则有两个原因,其一单个请求处理时间过长,发现

feifeifeixue的博客 1976

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Nginx 服务器大量499报错

快速入门 关于Nginx,我们可以到其官网 http://nginx.org/ 以及WIKI http://wiki.nginx.org 进行下载和了解。 我们可以看一下下面的英文介绍: Nginx (pronounced engine-x) is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. Igor Sysoev started .

Yonx 931

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

笔记专用。

该笔记是为了记录平时项目中遇到的问题和解决方案,供自己以后查看方便; 一、存储过程: 1、批量向DB里插入sql DELIMITER $$ DROP PROCEDURE IF EXISTS `add_test_data` $$ create procedure `add_test_data`() BEGIN DECLARE i INT DEFAULT 1; WHILE i <= 10 DO INSERT INTO `maple_user` VALUES (CONCA

蓝天之枫 427

NGINX代理返回代码499问题分析与处理

我们通过nginx作为互联网代理服务器,通过它实现我行内部系统向互联网系统的接口访问及调用;但是在使用过程中,不时的会出现大量返回代码为499的问题(正常访问返回为200),甚至有时候部分系统在报499的错误时,会影响到某一业务的正常使用。此时,我们也会怀疑nginx代理出现了问题,于是重启或者重新加载nginx服务。但是比较奇怪的是,如果nginx整个出现了问题,那么为什么会出现某个业务异常而不是在nginx上的所有服务异常呢?于是,我们则需要对为什么nginx会返回499错误代码展开分析和研究。

wx370092877的博客 1万+

记一次大量499http状态码问题出现与处理

目录 问题描述 问题分析 问题解决 总结思考 问题描述 1 19:38 DBA 发现加解密数据库 DTS 出现延迟,查看数据库监控,发现 ALI 机房出现大量写入。 2 19:41 架构组研发查看 cat 监控,发现加解密服务、消息中心服务等一些其他的服务出现总共2万多的499状态码。 3 19:43 加解密数据库 DTS 恢复正常,加解密数据库的 ALI 机房不再有大量写入。 4 20:00 加解密服务研发发现流量主要来源是消息中心服务,马上联系消息中心服务的负责人,了解业务情况。 .

javaTalk 2485

nginx 499 产生的原因

点击上方“码农编程进阶笔记”,选择“置顶或者星标”优质文章第一时间送达!什么是 nginx 的 499499 是 nginx 扩展的 4xx 错误,目的只是用于记录,并没有实际的响应。看...

lxw1844912514的博客 1691

HTTP 状态码 499 背后的原因:Nginx 与后端服务 TCP 连接断开导致的请求中断问题

HTTP 状态码 499 的核心是客户端主动断开连接,但“Nginx 与后端服务 TCP 连接断开”往往是触发点,反映了后端性能或可靠性问题。通过优化后端服务、调整 Nginx 超时设置和增强监控,您可以减少 499 错误,提升系统鲁棒性。如果您有具体配置或场景,我可以提供更针对性的建议!

2501_93878496的博客 2200

Nginx+PHP(laravel) 环境 499 错误码排查过程小记

前言 某公安项目过程中,在内网服务器部署 WNMP 环境,运行 Laravel 框架代码,后查看日志发现某一时刻突然所有请求 499,并持续一段时间,遂排查原因。 过程 0x01 经搜索得知:哪些情况下会使 Nginx 返回 HTTP CODE 499? 即:「客户端主动关闭连接」 但某一时间段内全部请求均为返回 499,这显然不是所有客户端主动意识上的「关闭」,可能是因为客户端等待超时,自动关闭连接;加上 499 的时间段内包含部分 502,让我不得不怀疑: PHP 进程「死」了。

lxw1844912514的博客 1623

服务器排障 之 nginx 499 错误的解决

http://blog.51cto.com/yucanghai/1713803 问题描述: Nginx 服务器大量499报错 220.181.165.136 - - [18/May/2015:10:31:02 +0800] "POST /v1/jobsHTTP/1.1" 499 0 "" "bdHttpRequest/1.0.0" 115.239.212.7 - - [18/May/2...

Alvin_Lam的专栏 2596

记一次nginx 499 引发的血案

 我是公司的一块砖,哪里需要往哪搬。如果研发人不足,数据也可做后端。  数据组老大离职,一堆数据接口代码等待人来接管,我天天祈求这些代码不要出问题,然后美梦就成真了,今天,其中一个提供关键词的接口慢的一批.  恰逢此时,领导在我背后拍了拍我的肩膀,有为啊,这个问题就交给你来处理了吧,你可从来没让我失望过啊!  当时,在下的心情比吃了七斤二两新鲜的热翔还要难受,鼓励我做事(晒甩事情)的话你都说,鼓励我做事(加薪)的事你不做,我给你说个锤子。  狠话虽然这样说,但是还是要恰饭的,为了这口饭,在下只好忍气吞声,卧

katyusha1的博客 1847

nginx 499 错误

参考:http://www.lc365.net/blog/b/23997/ http://yucanghai.blog.51cto.com/5260262/1713803 错误日志:10.0.0.21 - - [16/Nov/2017:16:57:53 +0800] "POST /insight/plan/query HTTP/1.1" 499 0 "https://newt...

weixin_33708432的博客 112

Nginx 499 报错,tomcat大量超时

今天web大量超时报错,查看日志显示,tomcat链接RPC服务timeout,查看tomcat机器和RPC服务所在机器资源都正常。尝试重启RPC服务后,web仍然报错,查看nginx日志,有大量499报错。经查询得知,nginx的499报错解释如下:『 499 / ClientClosed Request An Nginx HTTP server extension....

weixin_34050389的博客 708
上一篇: Promise原理分析
下一篇: CAS单点登录流程梳理
IMJCW
博客等级 码龄10年 13粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值