tomcat、gunicorn塔淤、uwsgi在大量并發(fā)時(shí)摘昌,遇到普遍的問題是502 504問題;
說到502高蜂,我們知道后端處理過慢需要擴(kuò)展worker聪黎;
說到504,我們知道處理超時(shí)妨马,一般調(diào)整timeout就可以挺举;
那么502,504問題的根本原因是什么烘跺? ??
socket 內(nèi)部是有兩個(gè)隊(duì)列湘纵,一個(gè)syn隊(duì)列,一個(gè)是accept隊(duì)列滤淳,這兩個(gè)隊(duì)列都在accept()之間就有了梧喷。 backlog是syn和accept隊(duì)列之和。當(dāng)后端處理不及時(shí)脖咐,backlog又到限制時(shí)铺敌,會(huì)出現(xiàn)502,也就是說新的客戶端不能建立屁擅,因?yàn)闆]有syn的槽位供你三次握手偿凭。 504 的話,處理超時(shí)派歌,中斷處理弯囊,直接返回錯(cuò)誤信息。