網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
周末休息的時(shí)候,經(jīng)理突然發(fā)消息來,說服務(wù)器崩了,馬上打開網(wǎng)站查看,發(fā)現(xiàn)部分接口請(qǐng)求的時(shí)候,nginx報(bào)502錯(cuò)誤。登上服務(wù)器,查看了nginx錯(cuò)誤日志,發(fā)現(xiàn)了大量的異常。
no live upstreams while connecting to upstream
?Only one usage of each socket address (protocol/network address/port) is normally permitted) while connecting to upstream
?起初以為是nginx的配置問題,百度了許久,修改了proxy_buffer_size,proxy_buffers 參數(shù),加大了緩存,502問題好像消失了。跟經(jīng)理說問題解決了,是配置問題。
。。。
沒想到第二天一早起床,打開微信一看,一堆消息,說服務(wù)器又崩了,和昨天的問題一樣,早餐都沒吃,趕緊跑去公司。
再次檢查nginx錯(cuò)誤日志,發(fā)現(xiàn)了一個(gè)錯(cuò)誤記錄
?[crit] 31144#87716: *15013 connect() to [::1]:9008 failed (10055: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full) while connecting to upstream
?是說系統(tǒng)缺少足夠的緩沖區(qū)空間或隊(duì)列已滿,該不會(huì)是太多連接到nginx了吧,覺得有可能是websocket長(zhǎng)連接的問題,于是把websocket連接暫時(shí)關(guān)閉,worker_connections參數(shù)調(diào)大,發(fā)現(xiàn)接口變正常了,沒有502了。于是跟經(jīng)理信誓旦旦保證,問題已經(jīng)解決了。
沒想到第三天還是出現(xiàn)了問題,再不解決就要提桶跑路了。
其實(shí)這里我進(jìn)入了一個(gè)誤區(qū),因?yàn)榻涌诜祷氐氖莕ginx502,以為是nginx的問題,后來,在tomcat的錯(cuò)誤日志里,發(fā)現(xiàn)了這個(gè)問題
Caused by: java.net.SocketException: No buffer space available (maximum connections reached?): connect
這里已經(jīng)很明顯了,是tcp連接數(shù)的問題,連接數(shù)滿了,無法再建立連接了
服務(wù)器使用的是 windows serve 2012R2
使用命令 netsh interface ipv4 show dynamicportrange tcp 查看了端口數(shù)發(fā)現(xiàn)只開放了少量端口
只需要打開注冊(cè)表,新增兩個(gè)參數(shù)
找到 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 目錄下
新增?MaxUserPort (默認(rèn)可用端口) 值為 65534
新增?TcpTimedWaitDelay? (tcp恢復(fù)時(shí)間)值為 30
我這里修改了注冊(cè)表后,并不需要重啟。
然后再次輸入命令?netsh interface ipv4 show dynamicportrange tcp
發(fā)現(xiàn)端口數(shù)改變了。
。。
目前已經(jīng)觀察了半個(gè)月,并沒有發(fā)現(xiàn)出現(xiàn)502錯(cuò)誤了。
原文鏈接:https://blog.csdn.net/weixin_47561225/article/details/127246781
相關(guān)推薦
- 2023-07-05 go gorm想要查詢數(shù)據(jù)按照where in中的數(shù)據(jù)進(jìn)行排序
- 2023-03-28 react-redux及redux狀態(tài)管理工具使用詳解_React
- 2024-03-08 Linux虛擬機(jī)輸入ifconfig不顯示IP地址解決方法
- 2022-04-24 25個(gè)值得收藏的Python文本處理案例_python
- 2023-07-26 TypeScript中的泛型(泛型函數(shù)、接口、類、泛型約束)
- 2022-04-28 在vmware虛擬機(jī)安裝dpdk的詳細(xì)過程_VMware
- 2022-06-08 FreeRTOS實(shí)時(shí)操作系統(tǒng)的內(nèi)存管理分析_操作系統(tǒng)
- 2022-02-28 gyp info it worked if it ends with ok npm ERR 解決辦法
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支