Nginx
捲曲超時故障排除
我執行 SaaS 監控服務。我們的標準集成範例是向我們提供的特殊 URL 發出 curl 請求。我們遇到了一個間歇性問題,使用者遇到了 10 秒的 curl 超時(-m 10 參數)。但是,我可以在我的伺服器日誌中看到,當時處理的請求只需要 100-300 毫秒,這對我們來說是正常的。
我們確實會在每分鐘的頂部看到流量高峰,但即便如此,我們也很少需要超過 1000 毫秒的時間。
我們有一個特別容易受到超時影響的使用者。我已經要求他在他的 hosts 文件中設置我們的 IP,以確保這不是 DNS 問題。(雖然我非常有信心這不是 DNS)。
我喜歡任何關於微創方式的想法,我可以請這個使用者幫助我進行故障排除。在我們轉儲之前,亞馬遜 ELB 超時更為常見(儘管仍然非常罕見),我能夠重現它幾次,我看到非常奇怪的“在 0 毫秒時超時”錯誤,好像連接在 10 秒後立即以某種方式被拒絕超時。
在我們的 iptables 配置中沒有什麼奇異的東西,只是阻塞了埠和錯誤的 ips。網路伺服器堆棧是 nginx-uwsgi
我們的問題原來是我們的 uwsgi 請求隊列已滿。為了解決這個問題,我們必須調整 uwsgi 設置和核心設置:https ://stackoverflow.com/questions/8516516/stuck-at-100-requests-uwsgi