日常Bug排查-Nginx重復請求?


日常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是無法找到這個請求的。

總結

日志是我們排查問題的重要手段,在海量的日志提取信息時候必須考慮好過濾條件。如若不然,則會影響我們的判斷。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM