您好,登錄后才能下訂單哦!
本篇文章為大家展示了Linux常用內(nèi)核網(wǎng)絡(luò)參數(shù)及修改方法是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
參數(shù) | 描述 |
---|---|
net.core.rmem_default | 默認(rèn)的TCP數(shù)據(jù)接收窗口大小(字節(jié))。 |
net.core.rmem_max | 最大的TCP數(shù)據(jù)接收窗口(字節(jié))。 |
net.core.wmem_default | 默認(rèn)的TCP數(shù)據(jù)發(fā)送窗口大?。ㄗ止?jié))。 |
net.core.wmem_max | 最大的TCP數(shù)據(jù)發(fā)送窗口(字節(jié))。 |
net.core.netdev_max_backlog | 當(dāng)內(nèi)核處理速度比網(wǎng)卡接收速度慢時,這部分多出來的包就會被保存在網(wǎng)卡的接收隊列上,而該參數(shù)說明了這個隊列的數(shù)量上限。在每個網(wǎng)絡(luò)接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時,允許送到隊列的數(shù)據(jù)包的最大數(shù)目。 |
net.core.somaxconn | 該參數(shù)定義了系統(tǒng)中每一個端口最大的監(jiān)聽隊列的長度,是個全局參數(shù)。該參數(shù)和net.ipv4.tcp_max_syn_backlog 有關(guān)聯(lián),后者指的是還在三次握手的半連接的上限,該參數(shù)指的是處于ESTABLISHED的數(shù)量上限。若您的ECS實例業(yè)務(wù)負(fù)載很高,則有必要調(diào)高該參數(shù)。listen(2) 函數(shù)中的參數(shù)backlog 同樣是指明監(jiān)聽的端口處于ESTABLISHED的數(shù)量上限,當(dāng)backlog 大于net.core.somaxconn 時,以net.core.somaxconn 參數(shù)為準(zhǔn)。 |
net.core.optmem_max | 表示每個套接字所允許的最大緩沖區(qū)的大小。 |
net.ipv4.tcp_mem | 確定TCP棧應(yīng)該如何反映內(nèi)存使用,每個值的單位都是內(nèi)存頁(通常是4KB)。 第一個值是內(nèi)存使用的下限。 第二個值是內(nèi)存壓力模式開始對緩沖區(qū)使用應(yīng)用壓力的上限。 第三個值是內(nèi)存使用的上限。在這個層次上可以將報文丟棄,從而減少對內(nèi)存的使用。對于較大的BDP可以增大這些值(其單位是內(nèi)存頁而不是字節(jié))。 |
net.ipv4.tcp_rmem | 為自動調(diào)優(yōu)定義Socket使用的內(nèi)存。 第一個值是為Socket接收緩沖區(qū)分配的最少字節(jié)數(shù)。 第二個值是默認(rèn)值(該值會被rmem_default覆蓋),緩沖區(qū)在系統(tǒng)負(fù)載不重的情況下可以增長到這個值。 第三個值是接收緩沖區(qū)空間的最大字節(jié)數(shù)(該值會被rmem_max覆蓋)。 |
net.ipv4.tcp_wmem | 為自動調(diào)優(yōu)定義Socket使用的內(nèi)存。 第一個值是為Socket發(fā)送緩沖區(qū)分配的最少字節(jié)數(shù)。 第二個值是默認(rèn)值(該值會被wmem_default覆蓋),緩沖區(qū)在系統(tǒng)負(fù)載不重的情況下可以增長到這個值。 第三個值是發(fā)送緩沖區(qū)空間的最大字節(jié)數(shù)(該值會被wmem_max覆蓋)。 |
net.ipv4.tcp_keepalive_time | TCP發(fā)送keepalive探測消息的間隔時間(秒),用于確認(rèn)TCP連接是否有效。 |
net.ipv4.tcp_keepalive_intvl | 探測消息未獲得響應(yīng)時,重發(fā)該消息的間隔時間(秒)。 |
net.ipv4.tcp_keepalive_probes | 在認(rèn)定TCP連接失效之前,最多發(fā)送多少個keepalive探測消息。 |
net.ipv4.tcp_sack | 啟用有選擇的應(yīng)答(1表示啟用),通過有選擇地應(yīng)答亂序接收到的報文來提高性能,讓發(fā)送者只發(fā)送丟失的報文段,(對于廣域網(wǎng)通信來說)這個選項應(yīng)該啟用,但是會增加對CPU的占用。 |
net.ipv4.tcp_fack | 啟用轉(zhuǎn)發(fā)應(yīng)答,可以進(jìn)行有選擇應(yīng)答(SACK)從而減少擁塞情況的發(fā)生,這個選項也應(yīng)該啟用。 |
net.ipv4.tcp_timestamps | TCP時間戳(會在TCP包頭增加12B),以一種比重發(fā)超時更精確的方法(參考RFC 1323)來啟用對RTT的計算,為實現(xiàn)更好的性能應(yīng)該啟用這個選項。 |
net.ipv4.tcp_window_scaling | 啟用RFC 1323定義的window scaling,要支持超過64KB的TCP窗口,必須啟用該值(1表示啟用),TCP窗口最大至1GB,TCP連接雙方都啟用時才生效。 |
net.ipv4.tcp_syncookies | 該參數(shù)表示是否打開TCP同步標(biāo)簽(SYN_COOKIES ),內(nèi)核必須開啟并編譯CONFIG_SYN_COOKIES,SYN_COOKIES 可以防止一個套接字在有過多試圖連接到達(dá)時,引起過載。默認(rèn)值0表示關(guān)閉。當(dāng)該參數(shù)被設(shè)置為1,且 SYN_RECV 隊列滿了之后,內(nèi)核會對SYN包的回復(fù)做一定的修改,即在響應(yīng)的SYN+ACK包中,初始的序列號是由源IP+Port、目的IP+Port及時間這五個參數(shù)共同計算出一個值組成精心組裝的TCP包。由于ACK包中確認(rèn)的序列號并不是之前計算出的值,惡意攻擊者無法響應(yīng)或誤判,而請求者會根據(jù)收到的SYN+ACK包做正確的響應(yīng)。啟用net.ipv4.tcp_syncookies 后,會忽略net.ipv4.tcp_max_syn_backlog 。 |
net.ipv4.tcp_tw_reuse | 表示是否允許將處于TIME-WAIT狀態(tài)的Socket(TIME-WAIT的端口)用于新的TCP連接。 |
net.ipv4.tcp_tw_recycle | 能夠更快地回收TIME-WAIT套接字。 |
net.ipv4.tcp_fin_timeout | 對于本端斷開的Socket連接,TCP保持在FIN-WAIT-2狀態(tài)的時間(秒)。對方可能會斷開連接或一直不結(jié)束連接或不可預(yù)料的進(jìn)程死亡。 |
net.ipv4.ip_local_port_range | 表示TCP/UDP協(xié)議允許使用的本地端口號。 |
net.ipv4.tcp_max_syn_backlog | 該參數(shù)決定了系統(tǒng)中處于SYN_RECV 狀態(tài)的TCP連接數(shù)量。SYN_RECV 狀態(tài)指的是當(dāng)系統(tǒng)收到SYN后,作為SYN+ACK響應(yīng)后等待對方回復(fù)三次握手階段中的最后一個ACK的階段。對于還未獲得對方確認(rèn)的連接請求,可保存在隊列中的最大數(shù)目。如果服務(wù)器經(jīng)常出現(xiàn)過載,可以嘗試增加這個數(shù)字。默認(rèn)為1024。 |
net.ipv4.tcp_low_latency | 允許TCP/IP棧適應(yīng)在高吞吐量情況下低延時的情況,這個選項應(yīng)該禁用。 |
net.ipv4.tcp_westwood | 啟用發(fā)送者端的擁塞控制算法,它可以維護(hù)對吞吐量的評估,并試圖對帶寬的整體利用情況進(jìn)行優(yōu)化,對于WAN通信來說應(yīng)該啟用這個選項。 |
net.ipv4.tcp_bic | 為快速長距離網(wǎng)絡(luò)啟用Binary Increase Congestion,這樣可以更好地利用以GB速度進(jìn)行操作的鏈接,對于WAN通信應(yīng)該啟用這個選項。 |
net.ipv4.tcp_max_tw_buckets | 該參數(shù)設(shè)置系統(tǒng)的TIME_WAIT的數(shù)量,如果超過默認(rèn)值則會被立即清除。默認(rèn)為180000。 |
net.ipv4.tcp_synack_retries | 指明了處于SYN_RECV狀態(tài)時重傳SYN+ACK包的次數(shù)。 |
net.ipv4.tcp_abort_on_overflow | 設(shè)置該參數(shù)為1時,當(dāng)系統(tǒng)在短時間內(nèi)收到了大量的請求,而相關(guān)的應(yīng)用程序未能處理時,就會發(fā)送Reset包直接終止這些鏈接。建議通過優(yōu)化應(yīng)用程序的效率來提高處理能力,而不是簡單地Reset。默認(rèn)值為0。 |
net.ipv4.route.max_size | 內(nèi)核所允許的最大路由數(shù)目。 |
net.ipv4.ip_forward | 接口間轉(zhuǎn)發(fā)報文。 |
net.ipv4.ip_default_ttl | 報文可以經(jīng)過的最大跳數(shù)。 |
net.netfilter.nf_conntrack_tcp_timeout_established | 在指定之間內(nèi),已經(jīng)建立的連接如果沒有活動,則通過iptables進(jìn)行清除。 |
net.netfilter.nf_conntrack_max | 哈希表項最大值。 |
在修改內(nèi)核參數(shù)前,需要注意以下幾點:
從實際需求出發(fā),盡量有相關(guān)數(shù)據(jù)的支撐,不建議隨意調(diào)整內(nèi)核參數(shù)。
了解參數(shù)的具體作用,需注意同類型或版本的環(huán)境中,內(nèi)核參數(shù)可能有所不同。
備份ECS實例中的重要數(shù)據(jù)。關(guān)于如何備份數(shù)據(jù)請參見創(chuàng)建快照。
本文提供以下兩種修改Linux實例內(nèi)核參數(shù)的方法。
/proc/sys/
目錄是Linux內(nèi)核在啟動后生成的偽目錄,其目錄下的net
文件夾中存放了當(dāng)前系統(tǒng)中開啟的所有內(nèi)核參數(shù),目錄樹結(jié)構(gòu)與參數(shù)的完整名稱相關(guān),如net.ipv4.tcp_tw_recycle
,它對應(yīng)的文件是/proc/sys/net/ipv4/tcp_tw_recycle
文件,文件的內(nèi)容就是參數(shù)值。方法一中修改的參數(shù)值僅在當(dāng)前運(yùn)行中生效,系統(tǒng)重啟后會回滾到歷史值,一般用于臨時性驗證修改的效果。若需要永久性修改,請參見方法二。
查看內(nèi)核參數(shù):使用cat
命令查看對應(yīng)文件的內(nèi)容,執(zhí)行以下命令,查看net.ipv4.tcp_tw_recycle
的值。
cat /proc/sys/net/ipv4/tcp_tw_recycle
修改內(nèi)核參數(shù):使用echo
命令修改內(nèi)核參數(shù)對應(yīng)的文件,執(zhí)行以下命令,將net.ipv4.tcp_tw_recycle
的值修改為0。
echo "0" > /proc/sys/net/ipv4/tcp_tw_recycle
查看內(nèi)核參數(shù):執(zhí)行sysctl -a
命令,查看當(dāng)前系統(tǒng)中生效的所有參數(shù),系統(tǒng)顯示類似如下。
net.ipv4.tcp_app_win = 31 net.ipv4.tcp_adv_win_scale = 2 net.ipv4.tcp_tw_reuse = 0 net.ipv4.tcp_frto = 2 net.ipv4.tcp_frto_response = 0 net.ipv4.tcp_low_latency = 0 net.ipv4.tcp_no_metrics_save = 0 net.ipv4.tcp_moderate_rcvbuf = 1 net.ipv4.tcp_tso_win_divisor = 3 net.ipv4.tcp_congestion_control = cubic net.ipv4.tcp_abc = 0 net.ipv4.tcp_mtu_probing = 0 net.ipv4.tcp_base_mss = 512 net.ipv4.tcp_workaround_signed_windows = 0 net.ipv4.tcp_challenge_ack_limit = 1000 net.ipv4.tcp_limit_output_bytes = 262144 net.ipv4.tcp_dma_copybreak = 4096 net.ipv4.tcp_slow_start_after_idle = 1 net.ipv4.cipso_cache_enable = 1 net.ipv4.cipso_cache_bucket_size = 10 net.ipv4.cipso_rbm_optfmt = 0 net.ipv4.cipso_rbm_strictvalid = 1
通過以下兩種方式,修改內(nèi)核參數(shù)。
說明:調(diào)整內(nèi)核參數(shù)后,內(nèi)核處于不穩(wěn)定狀態(tài),請務(wù)必重啟實例。
執(zhí)行以下命令,臨時修改內(nèi)核參數(shù)。/sbin/sysctl -w kernel.parameter="[$Example]"
說明:[$Example]為參數(shù)值,如
sysctl -w net.ipv4.tcp_tw_recycle="0"
命令,將參數(shù)值改為0。
通過修改配置文件的方式修改內(nèi)核參數(shù)。
執(zhí)行以下命令,修改/etc/sysctl.conf
文件中的參數(shù)。vi /etc/sysctl.conf
執(zhí)行以下命令,使配置生效。/sbin/sysctl -p
上述內(nèi)容就是Linux常用內(nèi)核網(wǎng)絡(luò)參數(shù)及修改方法是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。