調優1
調優2調優3
調優4net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_mem = 786432 1048576 1572864
net.core.wmem_max = 873200
net.core.rmem_max = 873200
net.ipv4.tcp_wmem = 8192 436600 873200
net.ipv4.tcp_rmem = 32768 436600 873200
net.core.somaxconn = 256
net.core.netdev_max_backlog = 1000
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.conf.lo.arp_ignore = 0
net.ipv4.conf.lo.arp_announce = 0
net.ipv4.conf.all.arp_ignore = 0
net.ipv4.conf.all.arp_announce = 0
#下面是iptables相關
net.ipv4.ip_conntrack_max = 6553600
net.ipv4.netfilter.ip_conntrack_max = 6553600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.neigh.default.gc_thresh1 = 10240
net.ipv4.neigh.default.gc_thresh2 = 40960
net.ipv4.neigh.default.gc_thresh3 = 81920
幾個解釋:
net.ipv4.tcp_syncookies = 1
#表示開啟syn cookies。當出現syn等待佇列溢位時,啟用cookies來處理,可防範少量syn攻擊,預設為0,表示關閉;
net.ipv4.tcp_tw_reuse = 1
#表示開啟重用。允許將time-wait sockets重新用於新的tcp連線,預設為0,表示關閉;
net.ipv4.tcp_tw_recycle = 1
#表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉。
net.ipv4.tcp_fin_timeout = 30
#表示如果套接字由本端要求關閉,這個引數決定了它保持在fin-wait-2狀態的時間。
net.ipv4.tcp_keepalive_time = 1200
#表示當keepalive起用的時候,tcp傳送keepalive訊息的頻度。預設是2小時,改為20分鐘。
net.ipv4.ip_local_port_range = 1024 65000
#表示用於向外連線的埠範圍。預設情況下很小:32768到61000,改為1024到65000。
net.ipv4.tcp_max_tw_buckets = 5000
#表示系統同時保持time_wait套接字的最大數量,如果超過這個數字,
#time_wait套接字將立刻被清除並列印警告資訊。預設為180000,改為5000。
#對於apache、nginx等伺服器,上幾行的引數可以很好地減少time_wait套接字數量,
#但是對於squid,效果卻不大。此項引數可以控制time_wait套接字的最大數量,避免squid伺服器被大量的time_wait套接字拖死。
相關引數說明:arp支援乙個sysctl介面,可以用以配置全域性引數或逐個網路介面地進行配製。該sysctl可以通過/proc/sys /net/ipv4/neigh/*/*檔案或者使用sysctl(2)介面來訪問。系統中每個介面都在/proc/sys/net/ipv4 /neigh/.中有自己的目錄。`default'目錄中的設定用於所有新建的裝置。sysctl相關的時間是以秒為單位,除非特別宣告過.
$ /proc/sys/net/core/wmem_max
最大socket寫buffer,可參考的優化值:873200
$ /proc/sys/net/core/rmem_max
最大socket讀buffer,可參考的優化值:873200
$ /proc/sys/net/ipv4/tcp_wmem
tcp寫buffer,可參考的優化值: 8192 436600 873200
$ /proc/sys/net/ipv4/tcp_rmem
tcp讀buffer,可參考的優化值: 32768 436600 873200
$ /proc/sys/net/ipv4/tcp_mem
同樣有3個值,意思是:
net.ipv4.tcp_mem[0]:低於此值,tcp沒有記憶體壓力.
net.ipv4.tcp_mem[1]:在此值下,進入記憶體壓力階段.
net.ipv4.tcp_mem[2]:高於此值,tcp拒絕分配socket.
上述記憶體單位是頁,而不是位元組.
可參考的優化值是:786432 1048576 1572864
$ /proc/sys/net/core/netdev_max_backlog
進入包的最大裝置佇列.預設是300,對重負載伺服器而言,該值太低,可調整到1000.
$ /proc/sys/net/core/somaxconn
listen()的預設引數,掛起請求的最大數量.預設是128.對繁忙的伺服器,增加該值有助於網路效能.
可調整到256.
$ /proc/sys/net/core/optmem_max
socket buffer的最大初始化值,預設10k.
$ /proc/sys/net/ipv4/tcp_max_syn_backlog
進入syn包的最大請求佇列.預設1024.對重負載伺服器,增加該值顯然有好處.
可調整到2048.
$ /proc/sys/net/ipv4/tcp_retries2
tcp失敗重傳次數,預設值15,意味著重傳15次才徹底放棄.可減少到5,以盡早釋放核心資源.
$ /proc/sys/net/ipv4/tcp_keepalive_time
$ /proc/sys/net/ipv4/tcp_keepalive_intvl
$ /proc/sys/net/ipv4/tcp_keepalive_probes
這3個引數與tcp keepalive有關.預設值是:
tcp_keepalive_time = 7200 seconds (2 hours)
tcp_keepalive_probes = 9
tcp_keepalive_intvl = 75 seconds
意思是如果某個tcp連線在idle 2個小時後,核心才發起probe.如果probe 9次(每次75秒)不成功,核心才徹底放棄,認為該連線已失效.對伺服器而言,顯然上述值太大. 可調整到:
/proc/sys/net/ipv4/tcp_keepalive_time 1800
/proc/sys/net/ipv4/tcp_keepalive_intvl 30
/proc/sys/net/ipv4/tcp_keepalive_probes 3
$ proc/sys/net/ipv4/ip_local_port_range
指定埠範圍的乙個配置,預設是32768 61000,已夠大.
Linux核心 修改TCP IP調優引數
所有的tcp ip調優引數都位於 proc sys net 目錄.例如,下面是最重要的一些調優引數,後面是它們的含義 1.proc sys net core rmem max 最大的tcp資料接收緩衝 2.proc sys net core wmem max 最大的tcp資料傳送緩衝 3.proc ...
Linux核心 修改TCP IP調優引數
所有的tcp ip調優引數都位於 proc sys net 目錄.例如,下面是最重要的一些調優引數,後面是它們的含義 1.proc sys net core rmem max 最大的tcp資料接收緩衝 2.proc sys net core wmem max 最大的tcp資料傳送緩衝 3.proc ...
Linux核心 修改TCP IP調優引數
所有的tcp ip調優引數都位於 proc sys net 目錄.例如,下面是最重要的一些調優引數,後面是它們的含義 1.proc sys net core rmem max 最大的tcp資料接收緩衝 2.proc sys net core wmem max 最大的tcp資料傳送緩衝 3.proc ...