Liunx下解決超時導致無法釋放的TCP連線

2021-10-08 17:25:58 字數 875 閱讀 5997

liunx伺服器下部署了.netcore3.1版本的hangfire,使用http請求時,多次超時後tcp連線一直沒有釋放,導致下乙個http請求一直等待,最終job一直不執行下一步。

解決方案:

編輯檔案,加入以下內容:

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 100

然後執行 /sbin/sysctl -p 讓引數生效。

net.ipv4.tcp_keepalive_time:預設情況下在連線空閒7200秒即2個小時後才會傳送keepalive探測包來確認連線情況。

net.ipv4.tcp_syncookies = 1 表示開啟syn cookies。當出現syn等待佇列溢位時,啟用cookies來處理,可防範少量syn攻擊,預設為0,表示關閉;

net.ipv4.tcp_tw_reuse = 1 表示開啟重用。允許將time-wait sockets重新用於新的tcp連線,預設為0,表示關閉;

net.ipv4.tcp_tw_recycle = 1 表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉。

net.ipv4.tcp_fin_timeout 修改系統預設的 timeout 時間

下面附上time_wait狀態的意義:

客戶端與伺服器端建立tcp/ip連線後關閉socket後,伺服器端連線的埠

狀態為time_wait

然後執行命令使修改後的配置生效

sysctl -p

MySQL死鎖導致無法查詢解決

mysql死鎖導致無法查詢解決 最近在維護資料庫時,解析資料時候,資料一直不能入庫。原因知道,是因為mysql的事務產生了死鎖,前幾次我直接重啟mysql。www.2cto.com 最近發現頻繁的出現。所以找到一種方法。select from information schema.innodb tr...

Linux 核心超時導致虛擬機器無法正常啟動

當 linux 虛擬機器啟動時,通過串列埠輸出或者啟動日誌,觀察到超時的報錯.導致虛擬機器無法正常啟動和連線.常見的超時報錯範例如下 複製 not tainted 2.6.32 504.8.1.el6.x86 64 1 echo 0 proc sys kernel hung task timeout...

Linux 核心超時導致虛擬機器無法正常啟動

當 linux 虛擬機器啟動時,通過串列埠輸出或者啟動日誌,觀察到超時的報錯.導致虛擬機器無法正常啟動和連線.常見的超時報錯範例如下 複製 not tainted 2.6.32 504.8.1.el6.x86 64 1 echo 0 proc sys kernel hung task timeout...