天天看點

Linux核心參數優化配置

#常用系統和網絡性能優化

vm.swappiness = 10

#值為0表示最大限度使用實體記憶體,值為100表示積極使用swap分區并把記憶體上的資料及時遷移到swap,建議值為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.ip_local_port_range = 1024 65000

#表示用于向外連接配接的端口範圍,預設情況下32768到61000,建議改為10240到65000

net.ipv4.tcp_max_tw_buckets = 5000

#表示系統同時保持time_wait套接字的最大數量,如果超過這個數字,time_wait套接字将立刻被清除并列印警告資訊。預設為180000,改為5000。對于apache、nginx等伺服器,

上幾行的參數可以很好地減少time_wait套接字數量,但是對于squid,效果卻不大;此項參數可以控制time_wait套接字的最大數量,避免squid伺服器被大量的time_wait套接字拖死

net.ipv4.tcp_mem = 786432 1048576 1572864

#3個值的意思是:[1]低于此值tcp沒有記憶體壓力;[2]在此值下tcp進入記憶體壓力階段;[3]高于此值tcp拒絕配置設定socket;上述記憶體機關是頁而不是位元組,參考優化值是:786432 1048576 1572864

net.core.optmem_max = 20480

#socket buffer的最大初始化值,預設10k

net.core.wmem_max = 873200

#最大socket寫buffer,可參考的優化值:873200

net.core.rmem_max = 873200

#最大socket讀buffer,可參考的優化值:873200

net.ipv4.tcp_wmem = 8192 436600 873200

#tcp寫buffer,可參考的優化值:8192 436600 873200

net.ipv4.tcp_rmem = 32768 436600 873200

#tcp讀buffer,可參考的優化值:32768 436600 873200

net.core.somaxconn = 256

#listen()的預設參數,挂起請求的最大數量,預設是128;繁忙的伺服器增加該值有助于網絡性能,可調整到256

net.core.netdev_max_backlog = 1000

#進入包的最大裝置隊列,預設是300,對重負載伺服器而言可調整到1000

net.ipv4.tcp_max_syn_backlog = 2048

#進入syn包的最大請求隊列,預設1024,對重負載伺服器增加該值顯然有好處,可調整到2048

net.ipv4.tcp_retries2 = 5

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

net.ipv4.tcp_keepalive_time = 7200

net.ipv4.tcp_keepalive_probes = 9

net.ipv4.tcp_keepalive_intvl = 75

#以上3個參數與tcp keepalive有關;如果某個tcp連接配接在idle 2個小時後,,核心才發起probe,如果probe 9次(每次75秒)不成功則核心才徹底放棄并認為該連接配接已失效;對伺服器而言上述值太大,可調整到:tcp_keepalive_time=1800,tcp_keepalive_intvl=30,tcp_keepalive_probes=3

#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.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

繼續閱讀