日常Bug排查-Nginx重复请求?

前言

日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,其中不乏一些看起来很低级但很容易犯的问题。

问题现场

有一天运维突然找到我,要我协助排查一个问题。业务开发怀疑Nginx会重复相同的请求,就感觉Nginx自己重试了一样。而PE给我看了下他们的配置,并没有配置任何重试。

第一感觉

我第一感觉就是应该不是Nginx的问题。但是开发怎么得出Nginx重试这个结论的呢?

跟随业务开发思路

于是笔者翻了下他们的邮件,他们是通过PE提供的Nginx Access日志和业务应用日志来推断的。其中搜索Nginx用了grep '30/Nov/2999 07:33:45' access.log | grep '业务条件' 这个命令。发现在这一秒内,对应的业务日志有两笔,而access.log只有一笔。



从日志上搜索确实如此。但笔者看了他们的搜索命令后,就发现他们犯了一个很常见的问题。那就是,请求会跨秒!

请求跨秒了

这是个很常见容易犯的错误,尤其是在请求有几百毫秒响应时间的情况下。于是笔者用grep搜索了下一秒的access.log中的数据。



很明显的,由于第二个请求花了641ms,导致access.log落在了46s的区间。grep 45s是无法找到这个请求的。

总结

日志是我们排查问题的重要手段,在海量的日志提取信息时候必须考虑好过滤条件。如若不然,则会影响我们的判断。

最新文章

  1. Unicode与JavaScript详解
  2. linux下安装svn
  3. erl0007 - erlang 远程节点连接的两种方式
  4. Java WEB —— Java提升
  5. 韩顺平细说Servlet视频系列之tom相关内容
  6. SOAP web service用AFNetWorking实现请求
  7. Hibernate报错 ** is not mapping
  8. eclipse序列化生成serialVersionUID
  9. 測试之路3——对照XML文件2
  10. 设计模式——辛格尔顿(Singleton)
  11. 2018-2019-2 网络对抗技术 20165328 Exp3 免杀原理与实践
  12. 干货型up主
  13. python3+selenium框架设计07-unittest单元测试框架
  14. BodeAbp服务端介绍
  15. Go语言学习之1 基本概念、环境搭建、第一个Go程序
  16. java标识字
  17. React Native多语言
  18. Cannot find snapshot in models/VGGNet/VOC0712/SSD_300x300
  19. Centos下查看cpu、磁盘、内存使用情况以及如何清理内存
  20. Java中遍历字符串toCharArray()和charAt()效率比较

热门文章

  1. 基于python对B站收藏夹按照视频发布时间进行排序
  2. 游戏中的2D OBB碰撞模型的碰撞算法介绍和实践
  3. [时间模块、random模块]
  4. curl -O http://www.linux.com/hello.sh
  5. 把一个整体目标设置成多个分阶段目标,完成了一个目标后,就相当于一件事OVER
  6. CentOS7开放端口以及常用的使用命令记录整理
  7. ScreenToGif: 屏幕录制神器
  8. STM32 keil中编译遇到的问题
  9. kylin剪枝优化的两种方式
  10. MVC、MVP和MVVM的区别