linux核心引數優化建議

2021-10-05 19:29:22 字數 3908 閱讀 4409

linux核心引數優化

net.ipv4.tcp_synack_retries = 2    #當伺服器接收到客戶端傳送的sync連線請求報文後,回應sync+ack報文,並等待客戶端的ack確認,如果超時會進行重傳,重傳次數由下列引數設定,預設為5

net.ipv4.tcp_syn_retries = 2     #客戶端發起sync連線,如果超時會進行重傳,重傳次數會由下列引數進行設定,預設為5

net.ipv4.tcp_tw_reuse = 1    #表示開啟重用。允許將處於time-wait 的socket重新用於新的tcp連線,預設為0,表示關閉,根據tcp/ip協議,連線斷開之後,埠不會立刻被釋放,而是處於time_wait狀態,等待兩分鐘半後,才會被釋放掉,才能被新連線使用,大量併發的情況下,如果已被占用的埠號未被釋放,部分新建連線因為無法分配到埠號而失敗

net.ipv4.tcp_fin_timeout = 30    #預設值60,這個引數決定了它保持在fin-wait-2狀態的時間,參考值 30(一般來說fin-wait-2的連線也極少)

#net.ipv4.tcp_max_tw_buckets = 819200     #預設為 131072,參考值5000,表示系統同時保持time_wait socket的最大數量,如果超過這個數字,time_wait socket將立刻被清除並列印警告資訊。事實上做nat的時候最好可以適當地增加該值)

net.ipv4.tcp_tw_recycle = 1    #表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉

net.ipv4.tcp_timestamps = 1    #本質是記錄資料報的傳送時間

net.ipv4.tcp_keepalive_intvl = 30    #tcp保活機制,探測失敗後,間隔若干秒後重新探測

net.ipv4.tcp_keepalive_probes = 3    #tcp保活機制,探測失敗後,最多嘗試探測幾次

net.ipv4.tcp_keepalive_time = 1200    #tcp保活機制,間隔多久傳送1次keepalive探測包

net.ipv4.tcp_retries2 = 5    #tcp失敗重傳次數,預設值15,意味著重傳15次才徹底放棄.可減少到5,盡早釋放核心資源

net.ipv4.tcp_max_syn_backlog = 819200    # 預設1024,對重負載伺服器,可調整到2048,以以容納更多等待連線的網路連線

net.ipv4.tcp_ecn = 0    #把tcp的直接擁塞通告(tcp_ecn)關掉

net.ipv4.tcp_max_orphans = 262144    # 系統所能處理不屬於任何程序的tcp sockets最大數量

net.ipv4.tcp_dsack = 1    #允許tcp傳送」兩個完全相同」的sack

net.ipv4.icmp_echo_ignore_broadcasts = 1    # 避免放大攻擊

net.ipv4.icmp_ignore_bogus_error_responses = 1    # 開啟惡意icmp錯誤訊息保護

net.ipv4.tcp_orphan_retries = 3 ##主要是針對孤立的socket(也就是已經從程序上下文中刪除了,可是還有一些清理工作沒有完成).對於這種socket,我們重試的最大的次數就是它

net.ipv4.tcp_sack = 1    # 預設開啟,啟用有選擇的應答(1表示啟用),通過有選擇地應答亂序接收到的報文來提高效能,讓傳送者只傳送丟失的報文段,(對於廣域網通訊來說)這個選項應該啟用,但是會增加對cpu的占用

net.ipv4.tcp_mem = 7621140 10161530 15242280     #確定tcp棧應該如何反映記憶體使用,每個值的單位都是記憶體頁(通常是4kb).第乙個值是記憶體使用的下限,低於此值,tcp沒有記憶體壓力;第二個值是記憶體壓力模式開始對緩衝區使用應用壓力的上限,在此值下,進入記憶體壓力階段; 第三個值是記憶體使用的上限. 高於此值,tcp拒絕分配socket,將報文丟棄,從而減少對記憶體的使用.對於較大的商業資料平台可以增大這些值(注意,其單位是記憶體頁而不是位元組)

net.ipv4.tcp_rmem = 4096 87380 8388608    ##為自動調優定義socket使用的記憶體.第乙個值是為socket接收緩衝區分配的最少位元組數;第二個值是預設值(該值會被rmem_default覆蓋), 緩衝區在系統負載不重的情況下可以增長到這個值;第三個值是接收緩衝區空間的最大位元組數(該值會被rmem_max覆蓋)

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

net.ipv4.conf.default.rp_filter = 1    ### 開啟反向路徑過濾

net.ipv4.conf.default.promote_secondaries = 1

net.ipv4.ip_forward = 1    #該檔案內容為0,表示禁止資料報**,1表示允許,將其修改為1

net.ipv4.conf.default.rp_filter = 2    #啟用源路由核查功能

net.ipv4.conf.all.rp_filter = 2

net.ipv4.tcp_fack = 1    ##開啟fack(forward ack)擁塞避免和快速重傳功能。(注意,當tcp_sack設定為0的時候,這個值即使設定為1也無效)

net.ipv4.conf.default.accept_source_route = 0    # 處理無源路由的包

kernel.sysrq = 0    #使用sysrq組合鍵是了解系統目前運**況,為安全起見設為0關閉

net.ipv4.tcp_syncookies = 1    #開啟syn cookies,當出現syn等待佇列溢位時,啟用cookies來處理

kernel.msgmnb = 65536    #每個訊息佇列的大小(單位:位元組)限制

kernel.msgmax = 65536    #整個系統最大訊息佇列數量限制

kernel.core_uses_pid = 1    #控制core檔案的檔名是否新增pid作為擴充套件

net.core.rmem_default = 873200    #預設的接收視窗大小(以位元組為單位)

net.core.wmem_default = 873200    #預設的傳送視窗大小(以位元組為單位)

net.core.somaxconn = 65535    #已經成功建立連線等待被應用程式接受(accept呼叫)的(established)佇列長度(等待被接受的連線個數)

net.core.netdev_max_backlog = 262144    #修改16384,每個網路介面接收資料報的速率比核心處理這些包的速率快時,允許送到佇列的資料報的最大數目,對重負載伺服器而言,該值需要調高一點

net.core.optmem_max = 20480    #socket buffer的最大初始化值,預設20k

net.core.wmem_max = 8388608    #傳送套接字緩衝區大小的最大值(以位元組為單位)

net.core.rmem_max = 8388608    #接收套接字緩衝區大小的最大值(以位元組為單位)

vm.max_map_count = 262144    #單程序可以使用的最大map記憶體區域數量

fs.file-max=804894    #檔案描述符的最大值

fs.nr_open = 65535    ### 單個程序所允許的檔案控制代碼的最大數目

kernel.pid_max = 65536   #linux預設的執行緒數

net.ipv4.tcp_window_scaling = 1    # tcp自動視窗

linux核心引數優化

linux核心引數優化 主要針對 etc sysctl.conf檔案 etc sysctl.conf是乙個允許你改變正在執行中的linux系統的介面。它包含一些tcp ip堆疊和虛擬記憶體系統的高階選項,可用來控制linux網路配置,由於 proc sys net目錄內容的臨時性,建議把tcpip引...

linux核心引數優化

linux如何在系統執行時修改核心引數 proc sys 與 etc sysctl.conf redhat向員提供了非常好的方法,使我們可以在系統執行時更改核心引數,而不需要重新引導系統。這是通過 proc虛擬檔案系統實現的。proc sys目錄下存放著大多數的核心引數,並且設計成可以在系統執行的同...

Linux核心引數優化

核心引數是使用者和系統核心之間互動的乙個介面,通過這個介面,使用者可以在系統執行的同時動態更新核心配置,而這些核心引數是通過linux proc檔案系統存在的。因此,可以通過調整proc檔案系統達到優化linux效能的目的。sysctl命令 被用於在核心執行時動態地修改核心的執行引數,可用的核心引數...