TCP IP 棧的效能調優

2022-08-14 23:48:12 字數 2244 閱讀 6119

給出了幾個可調節的引數,它們可以幫助您提高 linux tcp/ip 棧的效能。

表 1. tcp/ip 棧效能使用的可調節核心引數

可調節的引數

預設值選項說明

/proc/sys/net/core/rmem_default

"110592"

定義預設的接收視窗大小;對於更大的 bdp 來說,這個大小也應該更大。

/proc/sys/net/core/rmem_max

"110592"

定義接收視窗的最大大小;對於更大的 bdp 來說,這個大小也應該更大。

/proc/sys/net/core/wmem_default

"110592"

定義預設的傳送視窗大小;對於更大的 bdp 來說,這個大小也應該更大。

/proc/sys/net/core/wmem_max

"110592"

定義傳送視窗的最大大小;對於更大的 bdp 來說,這個大小也應該更大。

/proc/sys/net/ipv4/tcp_window_scaling

"1"啟用 rfc 1323 定義的 window scaling;要支援超過 64kb 的視窗,必須啟用該值。

/proc/sys/net/ipv4/tcp_sack

"1"啟用有選擇的應答(selective acknowledgment),這可以通過有選擇地應答亂序接收到的報文來提高效能(這樣可以讓傳送者只傳送丟失的報文段);(對於廣域網通訊來說)這個選項應該啟用,但是這會增加對 cpu 的占用。

/proc/sys/net/ipv4/tcp_fack

"1"啟用**應答(forward acknowledgment),這可以進行有選擇應答(sack)從而減少擁塞情況的發生;這個選項也應該啟用。

/proc/sys/net/ipv4/tcp_timestamps

"1"以一種比重發超時更精確的方法(請參閱 rfc 1323)來啟用對 rtt 的計算;為了實現更好的效能應該啟用這個選項。

/proc/sys/net/ipv4/tcp_mem

"24576 32768 49152"

確定 tcp 棧應該如何反映記憶體使用;每個值的單位都是記憶體頁(通常是 4kb)。第乙個值是記憶體使用的下限。第二個值是記憶體壓力模式開始對緩衝區使用應用壓力的上限。第三個值是記憶體上限。在這個層次上可以將報文丟棄,從而減少對記憶體的使用。對於較大的 bdp 可以增大這些值(但是要記住,其單位是記憶體頁,而不是位元組)。

/proc/sys/net/ipv4/tcp_wmem

"4096 16384 131072"

為自動調優定義每個 socket 使用的記憶體。第乙個值是為 socket 的傳送緩衝區分配的最少位元組數。第二個值是預設值(該值會被wmem_default覆蓋),緩衝區在系統負載不重的情況下可以增長到這個值。第三個值是傳送緩衝區空間的最大位元組數(該值會被wmem_max覆蓋)。

/proc/sys/net/ipv4/tcp_rmem

"4096 87380 174760"

tcp_wmem類似,不過它表示的是為自動調優所使用的接收緩衝區的值。

/proc/sys/net/ipv4/tcp_low_latency

"0"允許 tcp/ip 棧適應在高吞吐量情況下低延時的情況;這個選項應該禁用。

/proc/sys/net/ipv4/tcp_westwood

"0"啟用傳送者端的擁塞控制演算法,它可以維護對吞吐量的評估,並試圖對頻寬的整體利用情況進行優化;對於 wan 通訊來說應該啟用這個選項。

/proc/sys/net/ipv4/tcp_bic

"1"為快速長距離網路啟用 binary increase congestion;這樣可以更好地利用以 gb 速度進行操作的鏈結;對於 wan 通訊應該啟用這個選項。

與任何調優努力一樣,最好的方法實際上就是不斷進行實驗。您的應用程式的行為、處理器的速度以及可用記憶體的多少都會影響到這些引數影響效能的方式。在某些情況中,您認為有益的操作可能恰恰是有害的(反之亦然)。因此,我們需要逐一試驗各個選項,然後檢查每個選項的結果。換而言之,我們需要相信自己的經驗,但是對每次修改都要進行驗證。

調優 Nginx效能調優

一.nginx優化配置 1.主配置檔案優化 注 部分配置詳解 worker processes 8 nginx程序數,建議按照cpu數目來指定,一般為它的倍數。worker cpu affinity 00000001 00000010 00000100 00001000 00010000 00100...

Spark效能調優 JVM調優

通過一張圖讓你明白以下四個問題 1.jvm gc機制,堆記憶體的組成 2.spark的調優為什麼會和jvm的調優會有關聯?因為scala也是基於jvm執行的語言 3.spark中oom產生的原因 4.如何在jvm這個層面上來對spark進行調優 補充 spark程式執行時 jvm堆記憶體分配比例 r...

七 Spark效能調優 Shuffle 調優

目錄 一 調節 map 端緩衝區大小 二 調節 reduce 端拉取資料緩衝區大小 三 調節 reduce 端拉取資料重試次數 四 調節 reduce 端拉取資料等待間隔 五 調節 sortshuffle 排序操作閾值 val conf new sparkconf set spark.shuffle...