0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

總結(jié)一些常見(jiàn)網(wǎng)絡(luò)相關(guān)的內(nèi)核參數(shù)

阿銘linux ? 2018-01-16 16:14 ? 次閱讀

談到內(nèi)核大家會(huì)覺(jué)得很神秘,關(guān)于內(nèi)核參數(shù)的調(diào)整更是覺(jué)得云里霧里的。其實(shí),并沒(méi)有大家想象的那么難,平時(shí)對(duì)它們的調(diào)整也是很少用到。

也許你有經(jīng)歷,想了解一些內(nèi)核參數(shù)的作用,然后去網(wǎng)上搜了很多文檔,結(jié)果發(fā)現(xiàn)大多都一樣,而且沒(méi)有人能夠說(shuō)的很詳細(xì)。下面是我總結(jié)的幾個(gè)跟網(wǎng)絡(luò)相關(guān)的參數(shù),希望對(duì)你有所幫助。當(dāng)然,我也不保證理解的一定到位,如果你有更好的理解,請(qǐng)留言回復(fù)!
總結(jié)一些常見(jiàn)網(wǎng)絡(luò)相關(guān)的內(nèi)核參數(shù)

1net.ipv4.tcp_max_tw_buckets

對(duì)于tcp連接,服務(wù)端和客戶端通信完后狀態(tài)變?yōu)?a href="http://wenjunhu.com/tags/ti/" target="_blank">timewait,假如某臺(tái)服務(wù)器非常忙,連接數(shù)特別多的話,那么這個(gè)timewait數(shù)量就會(huì)越來(lái)越大。畢竟它也是會(huì)占用一定的資源,所以應(yīng)該有一個(gè)最大值,當(dāng)超過(guò)這個(gè)值,系統(tǒng)就會(huì)刪除最早的連接,這樣始終保持在一個(gè)數(shù)量級(jí)。

這個(gè)數(shù)值就是由net.ipv4.tcp_max_tw_buckets這個(gè)參數(shù)來(lái)決定的。CentOS7系統(tǒng),你可以使用sysctl -a |grep tw_buckets來(lái)查看它的值,默認(rèn)為32768,你可以適當(dāng)把它調(diào)低,比如調(diào)整到8000,畢竟這個(gè)狀態(tài)的連接太多也是會(huì)消耗資源的。

但你不要把它調(diào)到幾十、幾百這樣,因?yàn)檫@種狀態(tài)的tcp連接也是有用的,如果同樣的客戶端再次和服務(wù)端通信,就不用再次建立新的連接了,用這個(gè)舊的通道,省時(shí)省力。

2net.ipv4.tcp_tw_recycle=1

該參數(shù)的作用是快速回收timewait狀態(tài)的連接。上面雖然提到系統(tǒng)會(huì)自動(dòng)刪除掉timewait狀態(tài)的連接,但如果把這樣的連接重新利用起來(lái)豈不是更好。所以該參數(shù)設(shè)置為1就可以讓timewait狀態(tài)的連接快速回收,它需要和下面的參數(shù)配合一起使用。

3net.ipv4.tcp_tw_reuse=1

該參數(shù)設(shè)置為1,將timewait狀態(tài)的連接重新用于新的TCP連接,要結(jié)合上面的參數(shù)一起使用。

4net.ipv4.tcp_syncookies=1

tcp三次握手中,客戶端向服務(wù)端發(fā)起syn請(qǐng)求,服務(wù)端收到后,也會(huì)向客戶端發(fā)起syn請(qǐng)求同時(shí)連帶ack確認(rèn),假如客戶端發(fā)送請(qǐng)求后直接斷開(kāi)和服務(wù)端的連接,不接收服務(wù)端發(fā)起的這個(gè)請(qǐng)求,服務(wù)端會(huì)重試多次。

這個(gè)重試的過(guò)程會(huì)持續(xù)一段時(shí)間,當(dāng)這種狀態(tài)的連接數(shù)量非常大時(shí),服務(wù)器會(huì)消耗很大的資源,從而造成癱瘓,正常的連接進(jìn)不來(lái),這種惡意的半連接行為其實(shí)叫做syn flood攻擊。

設(shè)置為1,是開(kāi)啟SYN Cookies,開(kāi)啟后可以避免發(fā)生上述的syn flood攻擊。開(kāi)啟該參數(shù)后,服務(wù)端接收客戶端的ack后,再向客戶端發(fā)送ack+syn之前會(huì)要求client在短時(shí)間內(nèi)回應(yīng)一個(gè)序號(hào),如果客戶端不能提供序號(hào)或者提供的序號(hào)不對(duì)則認(rèn)為該客戶端不合法,于是不會(huì)發(fā)ack+syn給客戶端,更涉及不到重試。

5net.ipv4.tcp_max_syn_backlog

該參數(shù)定義系統(tǒng)能接受的最大半連接狀態(tài)的tcp連接數(shù)??蛻舳讼蚍?wù)端發(fā)送了syn包,服務(wù)端收到后,會(huì)記錄一下,該參數(shù)決定最多能記錄幾個(gè)這樣的連接。我的CentOS7系統(tǒng),默認(rèn)是256,當(dāng)有syn flood攻擊時(shí),這個(gè)數(shù)值太小則很容易導(dǎo)致服務(wù)器癱瘓,實(shí)際上此時(shí)服務(wù)器并沒(méi)有消耗太多資源(cpu、內(nèi)存等),所以可以適當(dāng)調(diào)大它,比如調(diào)整到30000。

6net.ipv4.tcp_syn_retries

該參數(shù)適用于客戶端,它定義發(fā)起syn的最大重試次數(shù),默認(rèn)為5,建議改為2。

7 net.ipv4.tcp_synack_retries

該參數(shù)適用于服務(wù)端,它定義發(fā)起syn+ack的最大重試次數(shù),默認(rèn)為5,建議改為2,可以適當(dāng)預(yù)防syn flood攻擊。

8net.ipv4.ip_local_port_range

該參數(shù)定義端口范圍,系統(tǒng)默認(rèn)保留端口為1024及以下,以上部分為自定義端口。這個(gè)參數(shù)適用于客戶端,當(dāng)客戶端和服務(wù)端建立連接時(shí),比如說(shuō)訪問(wèn)服務(wù)端的80端口,客戶端隨機(jī)開(kāi)啟了一個(gè)端口和服務(wù)端發(fā)起連接,這個(gè)參數(shù)定義隨機(jī)端口的范圍。默認(rèn)為3276861000,建議調(diào)整為102561000。

9net.ipv4.tcp_fin_timeout

tcp連接的狀態(tài)中,客戶端上有一個(gè)是FIN-WAIT-2狀態(tài),它是狀態(tài)變遷為timewait前一個(gè)狀態(tài)。該參數(shù)定義不屬于任何進(jìn)程的該連接狀態(tài)的超時(shí)時(shí)間,默認(rèn)值為60,建議調(diào)整為6。

10net.ipv4.tcp_keepalive_time

tcp連接狀態(tài)里,有一個(gè)是keepalived狀態(tài),只有在這個(gè)狀態(tài)下,客戶端和服務(wù)端才能通信。正常情況下,當(dāng)通信完畢,客戶端或服務(wù)端會(huì)告訴對(duì)方要關(guān)閉連接,此時(shí)狀態(tài)就會(huì)變?yōu)閠imewait,如果客戶端沒(méi)有告訴服務(wù)端,并且服務(wù)端也沒(méi)有告訴客戶端關(guān)閉的話(例如,客戶端那邊斷網(wǎng)了),此時(shí)需要該參數(shù)來(lái)判定。

比如客戶端已經(jīng)斷網(wǎng)了,但服務(wù)端上本次連接的狀態(tài)依然是keepalived,服務(wù)端為了確認(rèn)客戶端是否斷網(wǎng),就需要每隔一段時(shí)間去發(fā)一個(gè)探測(cè)包去確認(rèn)一下看看對(duì)方是否在線。這個(gè)時(shí)間就由該參數(shù)決定。它的默認(rèn)值為7200(單位為秒),建議設(shè)置為30。

11 net.ipv4.tcp_keepalive_intvl

該參數(shù)和上面的參數(shù)是一起的,服務(wù)端在規(guī)定時(shí)間內(nèi)發(fā)起了探測(cè),查看客戶端是否在線,如果客戶端并沒(méi)有確認(rèn),此時(shí)服務(wù)端還不能認(rèn)定為對(duì)方不在線,而是要嘗試多次。該參數(shù)定義重新發(fā)送探測(cè)的時(shí)間,即第一次發(fā)現(xiàn)對(duì)方有問(wèn)題后,過(guò)多久再次發(fā)起探測(cè)。

默認(rèn)值為75秒(單位為秒),可以改為3。

12 net.ipv4.tcp_keepalive_probes

第10和第11個(gè)參數(shù)規(guī)定了何時(shí)發(fā)起探測(cè)和探測(cè)失敗后再過(guò)多久再發(fā)起探測(cè),但并沒(méi)有定義一共探測(cè)幾次才算結(jié)束。該參數(shù)定義發(fā)起探測(cè)的包的數(shù)量。默認(rèn)為9,建議設(shè)置2。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1372

    瀏覽量

    40290
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1834

    瀏覽量

    32224

原文標(biāo)題:常見(jiàn)網(wǎng)絡(luò)相關(guān)的內(nèi)核參數(shù)調(diào)整

文章出處:【微信號(hào):aming_linux,微信公眾號(hào):阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux一些常見(jiàn)問(wèn)題——內(nèi)核編譯常見(jiàn)錯(cuò)誤

    Linux一些常見(jiàn)問(wèn)題——內(nèi)核編譯常見(jiàn)錯(cuò)誤編譯2.6.31內(nèi)核后重啟出現(xiàn)insmod: error inserting '/lib/dm-r
    發(fā)表于 02-20 15:22

    關(guān)于FPGA的一些典型問(wèn)題總結(jié)

    關(guān)于FPGA的一些典型問(wèn)題總結(jié)
    發(fā)表于 11-04 13:05

    NIOS II 常見(jiàn)問(wèn)題總結(jié)

    NIOS II 常見(jiàn)問(wèn)題總結(jié),如果你想要Altera的FPGA做嵌入式設(shè)計(jì),肯定要涉及到NIOS II的使用,本文總結(jié)一些NIOS II的常見(jiàn)
    發(fā)表于 12-01 15:43 ?14次下載

    kali一些基礎(chǔ)安裝總結(jié)

    kali一些基礎(chǔ)安裝總結(jié),有興趣的同學(xué)可以參考下載看看啦。
    發(fā)表于 03-29 11:12 ?0次下載

    關(guān)于二叉樹(shù)一些數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目

    最近總結(jié)一些數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目,這是第篇文章,關(guān)于二叉樹(shù)的。
    的頭像 發(fā)表于 02-07 13:57 ?3206次閱讀

    C++的一些試題資料總結(jié)免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是C++的一些試題資料總結(jié)免費(fèi)下載。
    發(fā)表于 01-29 10:04 ?6次下載
    C++的<b class='flag-5'>一些</b>試題資料<b class='flag-5'>總結(jié)</b>免費(fèi)下載

    2019美西展一些總結(jié)分享

    2019年第54屆美國(guó)西部國(guó)際安防展(以下簡(jiǎn)稱“美西展”)已經(jīng)結(jié)束,近期國(guó)外安防媒體及行業(yè)人士亦紛紛總結(jié)了美西展的參展感受,本文摘選一些觀點(diǎn)進(jìn)行分享,望有助于國(guó)內(nèi)從業(yè)人士了解國(guó)外市場(chǎng)。
    的頭像 發(fā)表于 05-07 14:26 ?3481次閱讀

    一些常見(jiàn)的PCB原型設(shè)計(jì)和裝配神話解析

    隨著我們的電子設(shè)備越來(lái)越小,PCB原型制作越來(lái)越復(fù)雜。以下是一些常見(jiàn)的PCB原型設(shè)計(jì)和裝配神話,適當(dāng)?shù)乇唤掖A私膺@些神話和相關(guān)事實(shí)將幫助您克服與PCB布局和裝配相關(guān)
    的頭像 發(fā)表于 08-06 09:03 ?2216次閱讀

    總結(jié)一些常用的電平標(biāo)準(zhǔn)資料下載

    電子發(fā)燒友網(wǎng)為你提供總結(jié)一些常用的電平標(biāo)準(zhǔn)資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-13 08:46 ?3次下載
    <b class='flag-5'>總結(jié)</b><b class='flag-5'>一些</b>常用的電平標(biāo)準(zhǔn)資料下載

    單片機(jī)學(xué)習(xí)之路一些常見(jiàn)的疑問(wèn)也是我的個(gè)人學(xué)習(xí)總結(jié)

    單片機(jī)學(xué)習(xí)之路一些常見(jiàn)的疑問(wèn)也是我的個(gè)人學(xué)習(xí)總結(jié)
    發(fā)表于 11-14 11:51 ?22次下載
    單片機(jī)學(xué)習(xí)之路<b class='flag-5'>一些</b><b class='flag-5'>常見(jiàn)</b>的疑問(wèn)也是我的個(gè)人學(xué)習(xí)<b class='flag-5'>總結(jié)</b>

    單片機(jī)學(xué)習(xí)之路一些常見(jiàn)的疑問(wèn)也是我的個(gè)人學(xué)習(xí)總結(jié)

    單片機(jī)學(xué)習(xí)之路一些常見(jiàn)的疑問(wèn)也是我的個(gè)人學(xué)習(xí)總結(jié)
    發(fā)表于 11-14 15:21 ?12次下載
    單片機(jī)學(xué)習(xí)之路<b class='flag-5'>一些</b><b class='flag-5'>常見(jiàn)</b>的疑問(wèn)也是我的個(gè)人學(xué)習(xí)<b class='flag-5'>總結(jié)</b>

    電路設(shè)計(jì)的一些經(jīng)驗(yàn)總結(jié)

    電路設(shè)計(jì)的一些經(jīng)驗(yàn)總結(jié)
    發(fā)表于 12-02 13:57 ?44次下載

    學(xué)習(xí)linux內(nèi)核一些建議

    學(xué)習(xí)linux內(nèi)核,這個(gè)可不像學(xué)門(mén)語(yǔ)言,c或者java個(gè)月或者3月你就能精通掌握。學(xué)習(xí)linux內(nèi)核是需要
    發(fā)表于 05-07 15:20 ?623次閱讀
    學(xué)習(xí)linux<b class='flag-5'>內(nèi)核</b>的<b class='flag-5'>一些</b>建議

    納米軟件科普:一些關(guān)于S參數(shù)常見(jiàn)問(wèn)題的問(wèn)答

    網(wǎng)絡(luò)分析儀常用被用來(lái)測(cè)試器件的S參數(shù),本篇文章納米軟件Namisoft小編將為大家整理一些關(guān)于S參數(shù)常見(jiàn)問(wèn)題問(wèn)答,下面
    的頭像 發(fā)表于 02-02 10:49 ?1254次閱讀

    TCP相關(guān)內(nèi)核參數(shù)總結(jié)

    在Linux上做網(wǎng)絡(luò)應(yīng)用的性能優(yōu)化時(shí),般都會(huì)對(duì)TCP相關(guān)內(nèi)核參數(shù)進(jìn)行調(diào)節(jié),特別是和緩沖、隊(duì)列有關(guān)的
    的頭像 發(fā)表于 11-10 15:17 ?807次閱讀
    TCP<b class='flag-5'>相關(guān)</b>的<b class='flag-5'>內(nèi)核</b><b class='flag-5'>參數(shù)</b><b class='flag-5'>總結(jié)</b>