在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux TCP內核的參數設置與調優

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2025-01-22 10:36 ? 次閱讀

Linux內核中的TCP參數

/proc/sys/net/ipv4/

/proc/sys/net/ipv4/存放著TCP參數的文件,目錄中的內容用來添加網絡設置,在其中的許多設置,可以用來阻止對系統的攻擊,或用來設置系統的路由功能。

07f3a21e-d7da-11ef-9310-92fbcf53809c.jpg

tcp_syn_retries客戶端發起SYN連接,如果超時會進行重傳,重傳的次數

080f35d8-d7da-11ef-9310-92fbcf53809c.jpg

接著我們使用sysctl net.ipv4.tcp_syn_retries=2把這個參數修改為2測試一下

082aa6b0-d7da-11ef-9310-92fbcf53809c.jpg

接著我們來驗證一下,我們去ssh一臺不存在的主機,因為ssh也是基于tcp

0838d8ac-d7da-11ef-9310-92fbcf53809c.jpg

通過wireshark抓包可以看到,果然重傳了2個數據包

0855694a-d7da-11ef-9310-92fbcf53809c.jpg

net.ipv4.tcp_window_scaling啟用或關閉窗口擴大因子選項

08677d56-d7da-11ef-9310-92fbcf53809c.jpg

087fc7a8-d7da-11ef-9310-92fbcf53809c.jpg

08904eac-d7da-11ef-9310-92fbcf53809c.jpg

net.ipv4.tcp_sack啟用或關閉選擇確認(Selective Acknowledgement, SACK)選項

08a2ccc6-d7da-11ef-9310-92fbcf53809c.jpg

名稱 默認值 建議值 描述
tcpsyn_retries 5 1 對于一個新建連接,內核要發送多少個SYN連接請求才決定放棄。不應該大于255,默認值是5,對應于180毫秒左右時間。(對于大負載而物理通信良好的網絡來說,這個值偏高,可以修改為2。這個值僅僅是針對對外的連接,對進來的連接,是由tcp_retries1決定)
tcp_synack_retries 5 1 對于遠端的連接請求SYN,內核會發送SYN+ACK數據包,以確認收到上一個SYN連接請求包。這是所謂的三次握手機制的第二個步驟。這里決定內核再放棄之前所發送出的SYN+ACK數目。不應該大于255,默認值是5,對應于180秒左右時間。
tcp_keepalive_time 7200 600 TCP發送keepalive探測消息的間隔時間(秒),用于確認TCP連接是否有效。防止兩邊建立連接但不發送數據的攻擊。
tcp_keepalive_probes 9 3 TCP發送keepalive探測消息的間隔時間(秒),用于確認TCP連接是否有效。
tcp_keepalive_intvl 74 15 探測消息未獲得響應時,重發該消息的間隔時間(秒)。默認值為75秒。(對于普通應用來說,這個值有一些偏大,可以根據需要改小.特別是web類服務器需要改小該值,15是個比較合適的值)
tcp_retries1 3 3 放棄回應一個TCP連接請求前﹐需要進行多少次重試。RFC 規定最低的數值是3
tcp_retries2 15 5 在丟棄激活(已建立通訊狀況)的TCP連接之前﹐需要進行多少次重試。默認值為15,根據RTO的值來決定,相當于13-30分鐘(RFC1122規定,必須大于100秒) (這個值根據目前的網絡設置,可以適當地改小,我的網絡內修改為了5)
tcp_orphan_retries 7 3 在近端丟棄TCP連接之前﹐要進行多少次重試。默認值是7個﹐相當于 50秒 - 16分鐘﹐視 RTO 而定。如果您的系統是負載很大的web服務器﹐那么也許需要降低該值,這類 sockets 可能會耗費大量的資源。另外參的考tcp_max_orphans。
tcp_fin_timeout 60 2 對于本端斷開的socket連接,TCP保持在FIN-WAIT-2狀態的時間。對方可能會斷開連接或一直不結束連接或不可預料的進程死亡。默認值為60秒
tcp_max_tw_buckets 180000 36000 系統在同時所處理的最大timewait sockets數目。如果超過此數的話,time-wait socket會被立即砍除并且顯示警告信息。之所以要設定這個限制﹐純粹為了抵御那些簡單的DoS攻擊﹐不過﹐如果網絡條件需要比默認值更多﹐則可以提高它(或許還要增加內存)。(事實上做NAT的時候最好可以適當地增加該值)
tcp_tw_recycle 0 1 打開快速TIME-WAIT sockets回收。除非得到技術專家的建議或要求﹐請不要隨意修改這個值。(做NAT的時候,建議打開它)
tcp_tw_reuse 0 1 表示是否允許重新應用處于TIME-WAIT狀態的socket用于新的TCP連接(這個對快速重啟動某些服務,而啟動后提示端口已經被使用的情形非常有幫助)
tcp_max_orphans 8192 32768 系統所能處理不屬于任何進程的TCP sockets最大數量。假如超過這個數量,那么不屬于任何進程的連接會被立即reset,并同時顯示警告信息。之所以要設定這個限制,純粹為了抵御那些簡單的DoS攻擊,千萬不要依賴這個或是人為的降低這個限制。如果內存大更應該增加這個值。(這個值Redhat AS版本中設置為32768,但是很多防火墻修改的時候,建議該值修改為2000)
tcp_abort_on_overflow 0 0 當守護進程太忙而不能接受新的連接,就象對方發送reset消息,默認值是false。這意味著當溢出的原因是因為一個偶然的猝發,那么連接將恢復狀態。只有在你確信守護進程真的不能完成連接請求時才打開該選項,該選項會影響客戶的使用。(對待已經滿載的sendmail,apache這類服務的時候,這個可以很快讓客戶端終止連接,可以給予服務程序處理已有連接的緩沖機會,所以很多防火墻上推薦打開它)
tcp_synookies 0 1 只有在內核編譯時選擇了CONFIG_SYNCOOKIES時才會發生作用。當出現syn等候隊列出現溢出時象對方發送syncookies。目的是為了防止syn flood攻擊。
tcp_stdurg 0 0 使用TCP urg pointer字段中的主機請求解釋功能。大部份的主機都使用老舊的 BSD解釋,因此如果您在 Linux 打開它,或會導致不能和它們正確溝通。
tcp_max_syn_backlog 1024 16384 對于那些依然還未獲得客戶端確認的連接請求,需要保存在隊列中最大數目。對于超過 128Mb 內存的系統,默認值是1024,低于 128Mb 的則為 128。如果服務器經常出現過載,可以嘗試增加這個數字。假如您將此值設為大于 1024,最好修改include/net/tcp.h里面的TCP_SYNQ_HSIZE,以保持TCP_SYNQ_HSIZE*16(SYN Flood攻擊利用TCP協議散布握手的缺陷,偽造虛假源IP地址發送大量TCP-SYN半打開連接到目標系統,最終導致目標系統Socket隊列資源耗盡而無法接受新的連接。為了應付這種攻擊,現代Unix系統中普遍采用多連接隊列處理的方式來緩沖(而不是解決)這種攻擊,是用一個基本隊列處理正常的完全連接應用(Connect()和Accept() ),是用另一個隊列單獨存放半打開連接。這種雙隊列處理方式和其他一些系統內核措施(例如Syn-Cookies/Caches)聯合應用時,能夠比較有效的緩解小規模的SYN Flood攻擊(事實證明)
tcp_window_scaling 1 1 該文件表示設置tcp/ip會話的滑動窗口大小是否可變。參數值為布爾值,為1時表示可變,為0時表示不可變。tcp/ip通常使用的窗口最大可達到65535字節,對于高速網絡,該值可能太小,這時候如果啟用了該功能,可以使tcp/ip滑動窗口大小增大數個數量級,從而提高數據傳輸的能力(RFC 1323)。
tcp_timestamps 1 1 Timestamps用在其它一些東西中,可以防范那些偽造的sequence號碼。一條1G的寬帶線路或許會重遇到帶out-of-line數值的舊sequence 號碼(假如它是由于上次產生的)。Timestamp會讓它知道這是個 ‘舊封包’。(該文件表示是否啟用以一種比超時重發更精確的方法(RFC 1323)來啟用對RTT的計算;為了實現更好的性能應該啟用這個選項。)
tcp_sack 1 1 使用Selective ACK,它可以用來查找特定的遺失的數據報— 因此有助于快速恢復狀態。該文件表示是否啟用有選擇的應答(Selective Acknowledgment),這可以通過有選擇地應答亂序接收到的報文來提高性能,這樣可以讓發送者只發送丟失的報文段。對于廣域網通信來說這個選項應該啟用,但是這會增加對 CPU 的占用。
tcp_fack 1 1 打開FACK擁塞避免和快速重傳功能。注意,當tcp_sack設置為0的時候,這個值即使設置為1也無效,這個是TCP連接靠譜的核心功能
tcp_dsack 1 1 允許TCP發送”兩個完全相同”的SACK。
tcp_ecn 0 0 TCP的直接擁塞通告功能。
tcp_reordering 3 6 TCP流中重排序的數據報最大數量。一般有看到推薦把這個數值略微調整大一些
tcp_retans_collapse 1 0 對于某些有bug的打印機提供針對其bug的兼容性。一般不需要這個支持,可以關閉它
tcp_wmem:mindefaultmax 4096 16384 131072 8192 131072 16777216 發送緩存設置。min:為TCP socket預留用于發送緩沖的內存最小值。每個tcp socket都可以在建議以后都可以使用它。默認值為4096(4K)。default:為TCP socket預留用于發送緩沖的內存數量,默認情況下該值會影響其它協議使用的net.core.wmem_default值,一般要低于net.core.wmem_default的值。默認值為16384(16K)。max: 用于TCP socket發送緩沖的內存最大值。該值不會影響net.core.wmem_max,”靜態”選擇參數SO_SNDBUF則不受該值影響。默認值為131072(128K)。對于服務器而言,增加這個參數的值對于發送數據很有幫助
tcprmem:mindefaultmax 4096 87380 174760 32768 131072 16777216 接收緩存設置。同tcp_wmem
tcp_mem:mindefaultmax 根據內存計算 786432 1048576 1572864 low:當TCP使用了低于該值的內存頁面數時,TCP不會考慮釋放內存。即低于此值沒有內存壓力。(理想情況下,這個值應與指定給 tcp_wmem 的第 2 個值相匹配 - 這第 2 個值表明,最大頁面大小乘以最大并發請求數除以頁大小 (131072 300 / 4096)。)pressure:當TCP使用了超過該值的內存頁面數量時,TCP試圖穩定其內存使用,進入pressure模式,當內存消耗低于low值時則退出pressure狀態。(理想情況下這個值應該是 TCP 可以使用的總緩沖區大小的最大值 (204800 300 / 4096)。)high:允許所有tcp sockets用于排隊緩沖數據報的頁面量。(如果超過這個值,TCP 連接將被拒絕,這就是為什么不要令其過于保守 (512000 *300 / 4096) 的原因了。在這種情況下,提供的價值很大,它能處理很多連接,是所預期的 2.5 倍;或者使現有連接能夠傳輸 2.5 倍的數據。
tcp_app_win 31 31 保留max(window/2^tcp_app_win, mss)數量的窗口由于應用緩沖。當為0時表示不需要緩沖。
tcp_adv_win_scale 2 2 計算緩沖開銷。
tcp_low_latency 0 0 允許 TCP/IP 棧適應在高吞吐量情況下低延時的情況;這個選項一般情形是的禁用。
tcp_westwood 0 0 啟用發送者端的擁塞控制算法,它可以維護對吞吐量的評估,并試圖對帶寬的整體利用情況進行優化;對于 WAN 通信來說應該啟用這個選項。
tcp_bic 0 0 為快速長距離網絡啟用Binary Increase Congestion;這樣可以更好地利用以 GB 速度進行操作的鏈接;對于 WAN 通信應該啟用這個選項。
ip_forward 0 1 NAT必須開啟IP轉發支持,把該值寫1
ip_local_port_range:minmax 32768 61000 1024 65000 表示用于向外連接的端口范圍,默認比較小,這個范圍同樣會間接用于NAT表規模。
ip_conntrack_max 65535 65535 系統支持的最大ipv4連接數,默認65536(事實上這也是理論最大值),同時這個值和你的內存大小有關,1G以上內存這個值都是默認65536

/proc/sys/net/core/

/proc/sys/net/core/目錄中包括許多設置用來控制Linux內核與網絡層的交互,即當網絡有什么動作時,內核做出什么樣的相應反應。

08badc62-d7da-11ef-9310-92fbcf53809c.jpg

名稱 默認值 建議值 描述
netdev_max_backlog 1024 16384 每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目,對重負載服務器而言,該值需要調高一點。
somaxconn 128 16384 用來限制監聽隊列最大數據包的數量,超過這個數量就會導致鏈接超時或者觸發重傳機制。web應用中listen函數的backlog默認會給我們內核參數的net.core.somaxconn限制到128,而nginx定義的NGX_LISTEN_BACKLOG默認為511,所以有必要調整這個值。對繁忙的服務器,增加該值有助于網絡性能
wmem_default 129024 129024 默認的發送窗口大小(字節)
rmem_default 129024 129024 默認的接收窗口大小(字節)
rmem_max 129024 873200 最大的TCP數據接收緩沖(字節)
wmem_max 129024 873200 最大的TCP數據發送緩沖(字節)

/proc/sys/net/netfilter/是對netfilter的參數配置,具體可以參照Linux內核文檔

08cb9fc0-d7da-11ef-9310-92fbcf53809c.jpg

修改內核參數的方法

使用echo value方式直接追加到文件中。如echo "1" > /proc/sys/net/ipv4/tcp_syn_retries,但是這種方式設備重啟后,會恢復成默認值。

把參數添加到/etc/sysctl.conf中,然后執行sysctl -p使參數生效。這種方式是永久有效的。

使用systcl命令進行修改,例如修改SYN重傳次數sysctl net.ipv4.tcp_syn_retries=n

查看Linux系統的統計信息

08e55186-d7da-11ef-9310-92fbcf53809c.jpg

下面的eth0換成需要查看的網卡


sys/class/net/eth0/statistics/rx_packets 收到的數據包數量
sys/class/net/eth0/statistics/tx_packets 傳輸的數據包數量
sys/class/net/eth0/statistics/rx_bytes 接收的字節數
sys/class/net/eth0/statistics/tx_bytes 傳輸的字節數
sys/class/net/eth0/statistics/rx_dropped 收包時丟棄的數據包
sys/class/net/eth0/statistics/tx_dropped 發包時丟棄的數據包
復制代碼

Linux網卡的參數可以在/sys/class/net/進入對應網卡目錄去查看,比如網卡的MAC地址,速率(speed),MTU等等

08eeb848-d7da-11ef-9310-92fbcf53809c.jpg

鏈接:https://www.cnblogs.com/pgyLang/p/16360102.html

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內核
    +關注

    關注

    3

    文章

    1381

    瀏覽量

    40360
  • Linux
    +關注

    關注

    87

    文章

    11336

    瀏覽量

    210097
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1377

    瀏覽量

    79183

原文標題:Linux TCP內核參數設置與調優(詳細)!

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    PMAC_參數設置

    PMAC_參數設置主要包括下位機環境變量、電機參數設置、PID參數調節。
    發表于 04-26 10:32 ?17次下載

    linux內核參數設置_linux內核的功能有哪些

    本文主要闡述了linux內核參數設置linux內核的功能。
    發表于 09-17 14:40 ?1390次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>內核</b><b class='flag-5'>參數設置</b>_<b class='flag-5'>linux</b><b class='flag-5'>內核</b>的功能有哪些

    Linux操作系統修改內核參數的三種方法詳細說明

    linux內核參數設置怎么弄呢,Linux 操作系統修改內核參數有以下三種方式:
    發表于 10-06 18:03 ?1.1w次閱讀
    <b class='flag-5'>Linux</b>操作系統修改<b class='flag-5'>內核</b><b class='flag-5'>參數</b>的三種方法詳細說明

    Linux用電功耗調的筆記分享

    整理一些Linux用電功耗調的筆記,分享給小伙伴,關于用電調個人覺得
    的頭像 發表于 06-23 15:19 ?4168次閱讀

    變頻器功能參數設置

    變頻器的參數設定較多,每個參數均有一定的選擇范圍,使用中常常遇到因個別參數設置不當導致變頻器不能正常工作的現象。以下為變頻器參數設置的步驟。
    發表于 01-31 09:16 ?1.1w次閱讀

    linux網絡棧監控及調:數據接收

    linux 網絡棧的監控及調上沒有捷徑可言,如果你想做有效的調,就必須搞清楚各個系統之間是怎么交互的。
    的頭像 發表于 03-25 16:44 ?1290次閱讀

    變頻器參數設置

    變頻器參數設置 基本參數設置 選擇通過選購卡的通信方式 通信地址設置
    發表于 04-07 11:47 ?0次下載
    變頻器<b class='flag-5'>參數設置</b>

    變頻器設置面板及參數設置方法

    工業設備的使用如何達到最大效能以及最佳效果,需要使用人員充分了解設備性能以及工藝要求,所以變頻器參數設置或者 化是非常重要的環節。參數設置可以是手持編程器操作,也可以是面板操作,部分機型還可以是電腦軟件下載
    發表于 04-10 09:43 ?0次下載
    變頻器<b class='flag-5'>設置</b>面板及<b class='flag-5'>參數設置</b>方法

    Vivado布線和生成bit參數設置

    本文主要介紹Vivado布線參數設置,基本設置方式和vivado綜合參數設置基本一致,將詳細說明如何設置布線參數以優化FPGA設計的性能,以
    的頭像 發表于 05-16 16:40 ?4812次閱讀
    Vivado布線和生成bit<b class='flag-5'>參數設置</b>

    Linux性能調常見工具和堆棧解析

    ? Linux系統性能調涉及多個方面,包括內核參數調整、文件系統優化、網絡設置等。 ? 1.
    的頭像 發表于 06-29 09:45 ?968次閱讀
    <b class='flag-5'>Linux</b>性能<b class='flag-5'>調</b><b class='flag-5'>優</b>常見工具和堆棧解析

    FP7122,FP7123,FP7125撥碼調功率參數設置原理圖

    撥碼調功率參數設置
    的頭像 發表于 10-31 22:39 ?2354次閱讀
    FP7122,FP7123,FP7125撥碼<b class='flag-5'>調</b>功率<b class='flag-5'>參數設置</b>原理圖

    jvm調參數

    JVM(Java虛擬機)是Java程序的運行環境,它負責解釋Java字節碼并執行相應的指令。為了提高應用程序的性能和穩定性,我們可以調JVM的參數。 JVM調
    的頭像 發表于 12-05 11:29 ?675次閱讀

    jvm參數設置和jvm調

    JVM(Java虛擬機)參數設置調對于提高Java應用程序的性能和穩定性非常重要。在本文中,我們將詳細介紹JVM參數
    的頭像 發表于 12-05 11:36 ?1631次閱讀

    深度解析JVM調實踐應用

    Tomcat自身的調是針對conf/server.xml中的幾個參數調設置。首先是對這幾個
    的頭像 發表于 04-01 10:24 ?502次閱讀
    深度解析JVM<b class='flag-5'>調</b><b class='flag-5'>優</b>實踐應用

    金田變頻器怎么調參數設置

    金田變頻器是一種廣泛應用于工業自動化領域的設備,其參數設置對于保證設備正常運行和提高生產效率具有重要意義。本文將詳細介紹金田變頻器的參數設置方法,包括基本參數設置、頻率設置、加減速時間
    的頭像 發表于 06-18 09:16 ?3880次閱讀
    主站蜘蛛池模板: 视色在线视频| 人人艹人人草| 精品一级毛片| 黄色一级日本| 第一页综合| 亚洲精品国产自在久久出水| 欧美夜夜| 美女被草视频| 在线观看黄网| 性满足久久久久久久久| 久久国产美女免费观看精品| 在线观看成人网| 五月婷婷丁香综合| 日韩色中色| 亚洲jizzjizz中文在线播放| 一级特级aaa毛片| 唐人社电亚洲一区二区三区| 男人午夜| 亚洲天堂手机在线| 色妞影视| 久久久噜噜噜久久网| 成人小视频在线| 天天色天天色| 亚洲高清在线视频| 欧美黄业| 欧美肥穴| 最新国产在线播放| 三级黄色在线观看| 日韩成人毛片高清视频免费看| 欧美xxxxx精品| 成人免费视频一区| 手机看片久久青草福利盒子| 中文4480yy私人免费影院| 卡一卡二卡三国色天香永不失联| 亚洲jizzjizz中文在线播放| 欧美日本综合| 悠悠影院欧美日韩国产| 国产特黄| 人人澡人人澡人人看青草| 日韩精品一卡二卡三卡四卡2021| 五月婷婷在线视频观看|