http://houjixin.blog.163.com/blog/static/3562841020156224178672/
2015
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
#表示開(kāi)啟SYN Cookies。當(dāng)出現(xiàn)SYN等待隊(duì)列溢出時(shí),啟用cookies來(lái)處理,可防范少量SYN攻擊,默認(rèn)為0,表示關(guān)閉;
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
#表示系統(tǒng)同時(shí)保持TIME_WAIT的最大數(shù)量,如果超過(guò)這個(gè)數(shù)字,TIME_WAIT將立刻被清除并打印警告信息。
#默認(rèn)為180000,改為6000。對(duì)于A(yíng)pache、Nginx等服務(wù)器,上幾行的參數(shù)可以很好地減少TIME_WAIT套接字?jǐn)?shù)量,
#但是對(duì)于Squid,效果卻不大。此項(xiàng)參數(shù)可以控制TIME_WAIT的最大數(shù)量,避免Squid服務(wù)器被大量的TIME_WAIT拖死。
net.ipv4.tcp_max_tw_buckets = 5000
#時(shí)間戳可以避免序列號(hào)的卷繞。一個(gè)1Gbps的鏈路肯定會(huì)遇到以前用過(guò)的序列號(hào)
#時(shí)間戳能夠讓內(nèi)核接受這種“異?!钡臄?shù)據(jù)包。這里需要將其關(guān)掉。
net.ipv4.tcp_timestamps = 0
#支持更大的TCP窗口. 如果TCP窗口最大超過(guò)65535(64K), 必須設(shè)置該數(shù)值為1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 0
net.core.netdev_max_backlog = 30000
net.ipv4.tcp_no_metrics_save = 1
net.core.somaxconn = 65535
#系統(tǒng)中最多有多少個(gè)TCP套接字不被關(guān)聯(lián)到任何一個(gè)用戶(hù)文件句柄上。
#如果超過(guò)這個(gè)數(shù)字,連接將即刻被復(fù)位并打印出警告信息。
#這個(gè)限制僅僅是為了防止簡(jiǎn)單的DoS攻擊,不能過(guò)分依靠它或者人為地減小這個(gè)值,更應(yīng)該增加這個(gè)值(如果增加了內(nèi)存之后)。
net.ipv4.tcp_max_orphans = 262144
#表示SYN隊(duì)列的長(zhǎng)度,默認(rèn)為1024,加大隊(duì)列長(zhǎng)度為65535,可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù)。
net.ipv4.tcp_max_syn_backlog = 65535
#為了打開(kāi)對(duì)端的連接,內(nèi)核需要發(fā)送一個(gè)SYN并附帶一個(gè)回應(yīng)前面一個(gè)SYN的ACK,也就是所謂三次握手中的第二次握手。這個(gè)設(shè)置決定了內(nèi)核放棄連接之前發(fā)送SYN+ACK包的數(shù)量。
net.ipv4.tcp_synack_retries = 2
#在內(nèi)核放棄建立連接之前發(fā)送SYN包的數(shù)量。
net.ipv4.tcp_syn_retries = 2
fs.file-max = 2000000
fs.nr_open = 2000000
#for redis
vm.overcommit_memory = 1