安裝linux後的核心調優

來源:互聯網
上載者:User
vm.swappiness = 10
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.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

幾個解釋:

swappiness的值的大小對如何使用swap分區是有著很大的聯絡的。swappiness=0的時候表示最大限度使用實體記憶體,然後才是
swap空間,swappiness=100的時候表示積極的使用swap分區,並且把記憶體上的資料及時的搬運到swap空間裡面。兩個極端,對於 centos
linux 5的預設設定,這個值等於60,建議修改為10。

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相關的時間是以秒為單位,除非特別聲明過.
anycast_delay

  對IPv6相鄰請求資訊的回複的最大延遲時間;目前還不支援anycast。預設值為1秒。  app_solicit  這是在使用多路廣播探測(multicast
probe)前,經過網路連接送到使用者間隙ARP連接埠監控程式的探測(probe)最大數目(見mcast_solicit)。預設值為0。  base_reachable_time  一旦發現相鄰記錄,至少在一段介於base_reachable_time/2和3*base_reachable_time/2之間的隨機時間內,該記錄是有效。如果收到上層協議的肯定反饋,那麼記錄的有效期間將延長。預設值是30秒。  delay_first_probe_time  發現某個相鄰層記錄無效(stale)後,發出第一個探測要等待的時間。預設值是5秒。  gc_interval  收集相鄰層記錄的無用記錄的垃圾收集程式的運行周期,預設為30秒。  gc_stale_time  決定檢查一次相鄰層記錄的有效性的周期。當相鄰層記錄失效時,將在給它發送資料前,再解析一次。預設值是60秒。  gc_thresh1  存在於ARP快取中的最少層數,如果少於這個數,垃圾收集器將不會運行。預設值是128。  gc_thresh2  儲存在ARP快取中的最多的記錄軟式節流。垃圾收集器在開始收集前,允許記錄數超過這個數字5秒。預設值是512。  gc_thresh3  儲存在ARP快取中的最多記錄的硬限制,一旦快取中的數目高於此,垃圾收集器將馬上運行。預設值是1024。  locktime  ARP記錄儲存在快取內的最短時間(jiffy數),以防止存在多個可能的映射(potential
mapping)時,ARP快取系統的顛簸(經常是由於網路的錯誤配置而引起)。預設值是1秒。  mcast_solicit  在把記錄標記為不可抵達的之前,用多路廣播/廣播(multicast/broadcast)方式解析地址的最大次數。  預設值是3。  proxy_delay  當接收到有一個請求已知的代理ARP地址的ARP請求時,在回應前可以延遲的jiffy(時間單位,見BUG)數目。這樣,以防止網路風暴。預設值是0.8秒。  proxy_qlen  能放入代理ARP地址隊列(proxy-ARP addresses)的資料包最大數目。預設值是64。  retrans_time  重發一個請求前的等待jiffy(時間單位,見BUG)的數目。預設值是1秒。  ucast_solicit  詢問ARP連接埠監控程式前,試圖發送單探測(unicast probe)的次數。(見app_solicit).預設值是3秒。  unres_qlen  每個沒有被其它網路層解析的地址,在隊列中可存放包的最大數目。預設值是3.

$ /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,已夠大.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.