linux關閉timewait端口,linux 如何強制關閉 time_wait 連接

匿名用戶

1級

2016-04-16 回答

# netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c

68 CLOSE_WAIT

2 CLOSING

136 ESTABLISHED

38 FIN_WAIT1

16 FIN_WAIT2

2 LAST_ACK

8 LISTEN

71 SYN_RECV

2936 TIME_WAIT

#

狀態:描述

CLOSED:無連接是活動的或正在進行

LISTEN:服務器在等待進入呼叫

SYN_RECV:一個連接請求已經到達,等待確認

SYN_SENT:應用已經開始,打開一個連接

ESTABLISHED:正常數據傳輸狀態

FIN_WAIT1:應用說它已經完成

FIN_WAIT2:另一邊已同意釋放

ITMED_WAIT:等待所有分組死掉

CLOSING:兩邊同時嘗試關閉

TIME_WAIT:另一邊已初始化一個釋放

LAST_ACK:等待所有分組死掉

linux sysctl.conf close_wait

$ /proc/sys/net/core/wmem_max

最大socket寫buffer,可參考的優化值:873200

$ /proc/sys/net/core/rmem_max

最大socket讀buffer,可參考的優化值:873200

$ /proc/sys/net/ipv4/tcp_wmem

TCP寫buffer,可參考的優化值: 8192 436600 873200

$ /proc/sys/net/ipv4/tcp_rmem

TCP讀buffer,可參考的優化值: 32768 436600 873200

$ /proc/sys/net/ipv4/tcp_mem

同樣有3個值,意思是:

net.ipv4.tcp_mem[0]:低于此值,TCP沒有內存壓力.

net.ipv4.tcp_mem[1]:在此值下,進入內存壓力階段.

net.ipv4.tcp_mem[2]:高于此值,TCP拒絕分配socket.

上述內存單位是頁,而不是字節.可參考的優化值是:786432 1048576 1572864

$ /proc/sys/net/core/netdev_max_backlog

進入包的最大設備隊列.默認是300,對重負載服務器而言,該值太低,可調整到1000.

$ /proc/sys/net/core/somaxconn

listen()的默認參數,掛起請求的最大數量.默認是128.對繁忙的服務器,增加該值有助于網絡性能.可調整到256.

$ /proc/sys/net/core/optmem_max

socket buffer的最大初始化值,默認10K.

$ /proc/sys/net/ipv4/tcp_max_syn_backlog

進入SYN包的最大請求隊列.默認1024.對重負載服務器,增加該值顯然有好處.可調整到2048.

$ /proc/sys/net/ipv4/tcp_retries2

TCP失敗重傳次數,默認值15,意味著重傳15次才徹底放棄.可減少到5,以盡早釋放內核資源.

$ /proc/sys/net/ipv4/tcp_keepalive_time

$ /proc/sys/net/ipv4/tcp_keepalive_intvl

$ /proc/sys/net/ipv4/tcp_keepalive_probes

這3個參數與TCP KeepAlive有關.默認值是:

tcp_keepalive_time = 3600 seconds (1 hours)

tcp_keepalive_probes = 3

tcp_keepalive_intvl = 60 seconds

意思是如果某個TCP連接在idle 2個小時后,內核才發起probe.

如果probe 3次(每次60秒)不成功,內核才徹底放棄,認為該連接已失效.

對服務器而言,顯然上述值太大. 可調整到:

/proc/sys/net/ipv4/tcp_keepalive_time 120

/proc/sys/net/ipv4/tcp_keepalive_intvl 30

/proc/sys/net/ipv4/tcp_keepalive_probes 2

$ proc/sys/net/ipv4/ip_local_port_range

指定端口范圍的一個配置,默認是32768 61000,已夠大.

在大并發時可以調成1024 65535

下面是處理time_wait狀態時需要處理的一些參數.

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 = 30

表示如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間。

net.ipv4.tcp_keepalive_time = 1200

表示當keepalive起用的時候,TCP發送keepalive消息的頻度。缺省是2小時,改為20分鐘。

net.ipv4.ip_local_port_range = 1024 65000

表示用于向外連接的端口范圍。缺省情況下很小:32768到61000,改為1024到65000。

net.ipv4.tcp_max_syn_backlog = 8192

表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數。

net.ipv4.tcp_max_tw_buckets = 5000

表示系統同時保持TIME_WAIT套接字的最大數量,如果超過這個數字,TIME_WAIT套接字將立刻被清除并打印警告信息。

默認為 180000,改為 5000。對于Apache、Nginx等服務器,上面提到的參數可以很好地減少TIME_WAIT套接字數量,

避免Squid服務器被大量的TIME_WAIT套接字拖死,此項參數可以控制TIME_WAIT套接字的最大數量。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529340.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529340.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529340.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

memset頭文件 linux,error: ‘memset’ was not declared in this scope

http://blog.sina.com.cn/s/blog_79d599dc0100r2vz.html昨天一同事把代碼準備重新全新布置到新的環境上去的時候,代碼報錯了,先開始報錯如下:error: ‘memset’ was not declared in this scopeerror: ‘strcat’ was not declared in this s…

linux中ls文件內存大小,Linux下用ls和du命令查看文件以及文件夾大小

webdriver零碎知識點#零碎知識點,用于記錄平時遇到的比較雜的知識點 driver.current_url 獲取當前url phantomjs 實現無瀏覽器界面自動化測試(driver webdriver.Phanto ...ORACLE刪除當前用戶下所有的表的方法1.如果有刪除用戶的權限,則可以: drop user user_name cascade; 加…

linux物理內存地址與iomem,一種Linux系統物理內存鏡像文件分析方法_4

模塊信息,如圖7所示,給出了本發明的實施例中 模塊結構關系圖,modules變量指向某一個已加載模塊結構體module地址,所有已加載模 塊其module形成一個雙向鏈表,如圖7所示,據此可以獲取到所有已加載模塊。[0099…

linux設備分層優點,Linux設備驅動的分層設計思想

代碼清單8第2行獲取platform_data,而platform_data實際上是定義GPIO按鍵硬件信息的數組,第31行的for循環工具這些信息申請GPIO并初始化中斷,對于LDD6140電路板而言,這些信息如代碼清單10。代碼清單10 LDD6410開發板GPIO按鍵的plat…

linux 關閉桌面環境,Ubuntu 14.04上的Cinnamon桌面環境PPA被關閉

今天Cinnamon桌面環境的開發者宣布關閉Cinnamon桌面環境的PPA,這意味著以后在Ubuntu上安裝Cinnamon桌面環境將變得很難。關于為什么要關閉PPA,Cinnamon PPA的維護者Gwendal Le Bihan做出了以下解釋:“穩定的Cinnamon PPA將不再提供&#xff0…

linux sd卡讀寫出錯,linux系統SD卡讀寫問題

請教有過linux系統SD卡讀寫經驗的前輩。我的項目是對FPGA上的SD卡部分做測試,在測試過程中發現在對SD卡所有領域進行讀寫操作時1、bus width 選擇1-bit的速度4-bit是差不多的,這與我預想的不同,想知道問題出在哪里?(理論上4bit 速度應該是1-…

genymotion linux 32,Ubuntu Linux 32bit - 不是Genymotion虛擬設備

因為4天我沒有找到解決方案我的genymotion有問題 我正在使用Ubuntu 12.04 32位(architecure:i686)并安裝android studio并將genymotion的插件放入其中succefully ......現在我的問題,當點擊genymotion設備管理器,列表是空的,當我試…

grub linux rootfs,rootfs文件系統(筆記)(草稿)

文件系統簡介文件系統就是個軟件,幫用戶來管理一些二進制的信息,管理外存上存儲的這些二進制各種文件在內存中都是以二進制的形式來存在的,如果沒有文件系統,用戶就需要自己去決定這些二進制的東西是什么,需要自己去和…

linux 如何查看屬性,linux?下查看系統屬性

linux 下查看系統屬性(2009-06-28 19:01:34)標簽:linux雜談分類:OSlinux下查看系統屬性1、查看cpu信息查看所有cpu信息:cat /proc/cpuinfo查看cpu類型: grep "model name" /proc/cpuinfo2、查看內存信息:查看…

幼兒學數數的c語言程序,【資源學習】c語言程序代碼,登錄幼兒園200個小朋友的數據...

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓編寫程序,登錄幼兒園200個小朋友的數據:姓名、性別、年齡、身高、體重、出生日期,分別按年齡排序后輸出。要求:(1)登錄數據用函數input()(2)按身高排序用函數sort()(3)輸出排序結果用…

c語言傳入參數不正確,請高手看看一下程序怎么回事啊?老是提示傳參數錯誤...

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓#includevoid main(){ void average(float, int);void search(float,int);static float score[][4]{{65,67,70,60},{80,87,90,81},{99,90,100,98}};average(score,12);search(score,2);}void average(float *p,int n){float *p_end…

vs用c語言寫貪吃蛇,熬書幾個月,終于編出簡易的貪吃蛇了,VS2013

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓#include#include#include#include#define X 30#define Y 15void guozi(int *x, int *y);int main(void){char map[X][Y];int x;int y;//橫縱坐標int i;int j;//標記蛇頭int p, q;//標記蛇尾int t, d;//尋找蛇尾int n 4;//蛇的長度…

中國電信學院c語言題庫,電腦題庫試題精編版.doc

1【單選題】以下關于圖靈機的說法,正確的是( ?)。A、圖靈機是一種計算機理論模型B、圖靈機是用于圖靈測試的計算機C、圖靈機是第一臺機械式計算機D、圖靈機是馮諾依曼體系結構計算機正確答案: A?2【單選題】關于中文信息編碼,以下正確的敘述…

統計c語言中英文字幕,C語言日記——遞歸

C語言日記——遞歸首先,允許我從《c primer plus》中摘一句話:C允許函數調用它自己,這種調用稱為遞歸。有一段時間一直搞不清楚遞歸的實質,直到看到如下代碼:#includeint up_and_down(int n);int main() {up_and_down(…

gnu linux中 使用,在Linux上使用GNU sed的方法

grep 命令grep 在文件(或命令輸出)中搜索指定正則表達式,并且在標準輸出中輸出匹配的行。樣例顯示文件 /etc/passwd 中用戶 gacanepa 的信息,忽略大小寫。#grep-i gacanepa /etc/passwd顯示 /etc 文件夾下所有 rc 開頭并跟隨任意數字的內容。#ls-l /etc …

android開機自動開啟zram,低內存配置 ?|? Android 開源項目 ?|? Android Open Source Project...

Android 支持內存為 512 MB 的設備。本文檔旨在幫助 OEM 優化和配置 Android 內核 4.4,使其能夠在低內存設備上運行。在下文所述的優化措施中,有幾項非常通用,甚至也可應用于以前的版本。Android 內核 4.4 平臺優化改善了內存管理采用了經驗證…

android 自動 鍵盤,關于Android中的軟鍵盤

InputMethodService為我們的輸入法創建了一個Dialog,并且將該Dialog的Window的某些參數(如Gravity)進行了設置,使之能夠在底部或者全屏顯示。當我們點擊輸入框時,系統對活動主窗口進行調整,從而為輸入法騰出相應的空間&#xff0c…

Android渠道包自動發布市場,Android Gradle實現打包指定渠道后自動上傳到fir

fir分三個主要步驟1.獲取fir上傳憑證2.上傳APKAPP logo圖標3.獲取最新的下載地址供別人下載注:python使用的是requests網絡請求庫1.獲取fir上傳憑證image.png代碼如下:# 第一步:獲取fir上傳憑證print("get fir upload certificate"…

android studio vfs,Android Studio:嘗試呈現XML布局的InvalidVirtualFileAccessException

我正在嘗試在我的應用中預覽xml布局(任何xml布局).我正在使用Android Studio 1.5 Preview 2.我一遍又一遍地收到此錯誤:InvalidVirtualFileAccessException:訪問無效的虛擬文件:file:// D:/Scott/Android/Studio/MyApp/app/build/intermediates/classes/debug/com/scott/myapp/…

android 基類fragment,Android DialogFragment 基類的定制

鴻洋博客介紹:DialogFragment的基本使用好處:1:使用DialogFragment來管理對話框,當旋轉屏幕和按下后退鍵時可以更好的管理其聲明周期,它和Fragment有著基本一致的生命周期2.DialogFragment也允許開發者把Dialog作為內嵌…