內核參數優化/etc/sysctl.conf

內核參數優化/etc/sysctl.confhtml

net.nf_conntrack_max = 65536000
net.netfilter.nf_conntrack_tcp_timeout_established = 1200
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.route.gc_timeout = 100
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_max_syn_backlog = 262144
net.core.netdev_max_backlog = 262144
sysctl: setting key "net.core.somaxconn": Invalid argument
net.core.somaxconn = 262144
net.ipv4.tcp_mem = 94500000 915000000 927000000算法

 

複製代碼

# allow testing with buffers up to 128MB
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
# increase Linux autotuning TCP buffer limit to 64MB
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
# increase the length of the processor input queue
net.core.netdev_max_backlog = 250000
# recommended default congestion control is htcp
net.ipv4.tcp_congestion_control = htcp
# recommended for hosts with jumbo frames enabled
net.ipv4.tcp_mtu_probing = 1

net.netfilter.nf_conntrack_max = 2100000

net.netfilter.nf_conntrack_max = 1048576

net.netfilter.ip_conntrack_tcp_timeout_established = 3600

net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60

net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120

複製代碼

 

複製代碼

Linux之TCPIP內核參數優化
     
    /proc/sys/net目錄
      全部的TCP/IP參數都位於/proc/sys/net目錄下(請注意,對/proc/sys/net目錄下內容的修改都是臨時的,任何修改在系統重啓後都會丟失),例以下面這些重要的參數:
     
    參數(路徑+文件)
     
    描述
     
    默認值
     
    優化值
     
    /proc/sys/net/core/rmem_default
     
    默認的TCP數據接收窗口大小(字節)。
     
    229376
     
    256960
     
    /proc/sys/net/core/rmem_max
     
    最大的TCP數據接收窗口(字節)。
     
    131071
     
    513920
     
    /proc/sys/net/core/wmem_default
     
    默認的TCP數據發送窗口大小(字節)。
     
    229376
     
    256960
     
    /proc/sys/net/core/wmem_max
     
    最大的TCP數據發送窗口(字節)。
     
    131071
     
    513920
     
    /proc/sys/net/core/netdev_max_backlog
     
    在每一個網絡接口接收數據包的速率比內核處理這些包的速率快時,容許送到隊列的數據包的最大數目。
     
    1000
     
    2000
     
    /proc/sys/net/core/somaxconn
     
    定義了系統中每個端口最大的監聽隊列的長度,這是個全局的參數。
     
    128
     
    2048
     
    /proc/sys/net/core/optmem_max
     
    表示每一個套接字所容許的最大緩衝區的大小。
     
    20480
     
    81920
     
    /proc/sys/net/ipv4/tcp_mem
     
    肯定TCP棧應該如何反映內存使用,每一個值的單位都是內存頁(一般是4KB)。第一個值是內存使用的下限;第二個值是內存壓力模式開始對緩衝區使用應用壓力的上限;第三個值是內存使用的上限。在這個層次上能夠將報文丟棄,從而減小對內存的使用。對於較大的BDP能夠增大這些值(注意,其單位是內存頁而不是字節)。
     
    94011  125351  188022
     
    131072  262144  524288
     
    /proc/sys/net/ipv4/tcp_rmem
     
    爲自動調優定義socket使用的內存。第一個值是爲socket接收緩衝區分配的最少字節數;第二個值是默認值(該值會被rmem_default覆蓋),緩衝區在系統負載不重的狀況下能夠增加到這個值;第三個值是接收緩衝區空間的最大字節數(該值會被rmem_max覆蓋)。
     
    4096  87380  4011232
     
    8760  256960  4088000
     
    /proc/sys/net/ipv4/tcp_wmem
     
    爲自動調優定義socket使用的內存。第一個值是爲socket發送緩衝區分配的最少字節數;第二個值是默認值(該值會被wmem_default覆蓋),緩衝區在系統負載不重的狀況下能夠增加到這個值;第三個值是發送緩衝區空間的最大字節數(該值會被wmem_max覆蓋)。
     
    4096  16384  4011232
     
    8760  256960  4088000
     
    /proc/sys/net/ipv4/tcp_keepalive_time
     
    TCP發送keepalive探測消息的間隔時間(秒),用於確認TCP鏈接是否有效。
     
    7200
     
    1800
     
    /proc/sys/net/ipv4/tcp_keepalive_intvl
     
    探測消息未得到響應時,重發該消息的間隔時間(秒)。
     
    75
     
    30
     
    /proc/sys/net/ipv4/tcp_keepalive_probes
     
    在認定TCP鏈接失效以前,最多發送多少個keepalive探測消息。
     
    9
     
    3
     
    /proc/sys/net/ipv4/tcp_sack
     
    啓用有選擇的應答(1表示啓用),經過有選擇地應答亂序接收到的報文來提升性能,讓發送者只發送丟失的報文段,(對於廣域網通訊來講)這個選項應該啓用,可是會增長對CPU的佔用。
     
    1
     
    1
     
    /proc/sys/net/ipv4/tcp_fack
     
    啓用轉發應答,能夠進行有選擇應答(SACK)從而減小擁塞狀況的發生,這個選項也應該啓用。
     
    1
     
    1
     
    /proc/sys/net/ipv4/tcp_timestamps
     
    TCP時間戳(會在TCP包頭增長12個字節),以一種比重發超時更精確的方法(參考RFC 1323)來啓用對RTT 的計算,爲實現更好的性能應該啓用這個選項。
     
    1
     
    1
     
    /proc/sys/net/ipv4/tcp_window_scaling
     
    啓用RFC 1323定義的window scaling,要支持超過64KB的TCP窗口,必須啓用該值(1表示啓用),TCP窗口最大至1GB,TCP鏈接雙方都啓用時才生效。
     
    1
     
    1
     
    /proc/sys/net/ipv4/tcp_syncookies
     
    表示是否打開TCP同步標籤(syncookie),內核必須打開了CONFIG_SYN_COOKIES項進行編譯,同步標籤能夠防止一個套接字在有過多試圖鏈接到達時引發過載。
     
    1
     
    1
     
    /proc/sys/net/ipv4/tcp_tw_reuse
     
    表示是否容許將處於TIME-WAIT狀態的socket(TIME-WAIT的端口)用於新的TCP鏈接 。
     
    0
     
    1
     
    /proc/sys/net/ipv4/tcp_tw_recycle
     
    可以更快地回收TIME-WAIT套接字。
     
    0
     
    1
     
    /proc/sys/net/ipv4/tcp_fin_timeout
     
    對於本端斷開的socket鏈接,TCP保持在FIN-WAIT-2狀態的時間(秒)。對方可能會斷開鏈接或一直不結束鏈接或不可預料的進程死亡。
     
    60
     
    30
     
    /proc/sys/net/ipv4/ip_local_port_range
     
    表示TCP/UDP協議容許使用的本地端口號
     
    32768  61000
     
    1024  65000
     
    /proc/sys/net/ipv4/tcp_max_syn_backlog
     
    對於還未得到對方確認的鏈接請求,可保存在隊列中的最大數目。若是服務器常常出現過載,能夠嘗試增長這個數字。
     
    2048
     
    2048
     
    /proc/sys/net/ipv4/tcp_low_latency
     
    容許TCP/IP棧適應在高吞吐量狀況下低延時的狀況,這個選項應該禁用。
     
    0
     
     
     
    /proc/sys/net/ipv4/tcp_westwood
     
    啓用發送者端的擁塞控制算法,它能夠維護對吞吐量的評估,並試圖對帶寬的總體利用狀況進行優化,對於WAN 通訊來講應該啓用這個選項。
     
    0
     
     
     
    /proc/sys/net/ipv4/tcp_bic
     
    爲快速長距離網絡啓用Binary Increase Congestion,這樣能夠更好地利用以GB速度進行操做的連接,對於WAN通訊應該啓用這個選項。
     
    1
     
     
     
     
     
    /etc/sysctl.conf文件
     
      /etc/sysctl.conf是一個容許你改變正在運行中的Linux系統的接口。它包含一些TCP/IP堆棧和虛擬內存系統的高級選項,可用來控制Linux網絡配置,因爲/proc/sys/net目錄內容的臨時性,建議把TCPIP參數的修改添加到/etc/sysctl.conf文件, 而後保存文件,使用命令「/sbin/sysctl –p」使之當即生效。具體修改方案參照上文:
     
    net.core.rmem_default = 256960
     
    net.core.rmem_max = 513920
     
    net.core.wmem_default = 256960
     
    net.core.wmem_max = 513920
     
    net.core.netdev_max_backlog = 2000
     
    net.core.somaxconn = 2048
     
    net.core.optmem_max = 81920
     
    net.ipv4.tcp_mem = 131072  262144  524288
     
    net.ipv4.tcp_rmem = 8760  256960  4088000
     
    net.ipv4.tcp_wmem = 8760  256960  4088000
     
    net.ipv4.tcp_keepalive_time = 1800
     
    net.ipv4.tcp_keepalive_intvl = 30
     
    net.ipv4.tcp_keepalive_probes = 3
     
    net.ipv4.tcp_sack = 1
     
    net.ipv4.tcp_fack = 1
     
    net.ipv4.tcp_timestamps = 1
     
    net.ipv4.tcp_window_scaling = 1
     
    net.ipv4.tcp_syncookies = 1
     
    net.ipv4.tcp_tw_reuse = 1
     
    net.ipv4.tcp_tw_recycle = 1
     
    net.ipv4.tcp_fin_timeout = 30
     
    net.ipv4.ip_local_port_range = 1024  65000
     
    net.ipv4.tcp_max_syn_backlog = 2048
相關文章
相關標籤/搜索