Linux系統優化實現高併發

 

ulimit -SHn 65535
內核優化
net.ipv4.ip_forward = 1            #開啓路由功能
net.ipv4.conf.default.rp_filter = 1    #禁用所有IP源路由 
net.ipv4.conf.default.accept_source_route = 0    #禁用icmp源路由選項
kernel.sysrq = 0    #關閉SysRq功能,SysRq代表的是Magic System Request Key
kernel.core_uses_pid = 1      #控制core文件的文件名是否添加pid作爲擴展 
net.ipv4.tcp_syncookies = 1    # tcp syncookie,默認關閉
kernel.msgmnb = 65536 #默認的每個消息隊列的最大尺寸(byte),默認爲16384
kernel.msgmax = 65536    #消息隊列中單條消息的最大尺寸(byte),默認8192
kernel.shmmax = 68719476736    #共享內存中的最大內存塊尺寸(byte),默認33554432(32M),這裏是65536M
kernel.shmall = 4294967296   #kernel.shmall的單位是頁面數,當前的x86體系上這個單位是4K,這裏是2048G的共享內存總量,默認2097152
fs.file-max = 6553600       #系統級最大打開文件數,還要結合limits.conf的soft和hard限制
net.ipv4.tcp_max_tw_buckets = 5000    #1st低於此值,TCP沒有內存壓力,2nd進入內存壓力階段,3rdTCP拒絕分配socket(單位:內存頁)
net.ipv4.tcp_sack = 1                #定義SYN重試次數
net.ipv4.tcp_window_scaling = 1 #開啓窗口縮放功能
net.ipv4.tcp_rmem = 4096  87380  4194304   #接受緩衝的大小:MIN,DEFAULT,MAX
net.ipv4.tcp_wmem = 4096    16384   4194304   #socket的發送緩存區分配的MIN,DEFAULT,MAX
net.ipv4.tcp_max_syn_backlog = 8192    #syn隊列,默認1024,> 1280可能工作不穩定,需要修改內核源碼參數
net.core.netdev_max_backlog = 32768    #進入包的最大設備隊列.默認是300,對重負載服務器而言,該值太低,可調整到2000.         
net.core.somaxconn = 32768          #listen()的默認參數,掛起請求的最大數量.默認是128.對繁忙的服務器,增加該值有助於網絡性能
net.core.wmem_default = 8388608     #表示套接字發送緩衝區大小的缺省值,會覆蓋net.ipv4.tcp_wmem的DEFAUL值
net.core.rmem_default = 8388608      #表示套接字接收緩衝區大小的缺省值
net.core.rmem_max = 16777216       #表示套接字接收緩衝區大小的最大值
net.core.wmem_max = 16777216      #表示套接字發送緩衝區大小的最大值,會覆蓋net.ipv4.tcp_wmem的MAX值
net.ipv4.tcp_timestamps = 0      #禁用時間戳,時間戳可以避免序列號的卷繞
net.ipv4.tcp_synack_retries = 2   #syn-ack握手狀態重試次數,默認5,遭受syn-flood攻擊時改爲1或2
net.ipv4.tcp_syn_retries = 2       #外向syn握手重試次數,默認4
net.ipv4.tcp_tw_recycle = 1       #開啓 TCP 連接中 TIME-WAIT sockets 的快速回收,默認爲 0 ,表示關閉。
net.ipv4.tcp_tw_reuse = 1        #開啓重用。允許將 TIME-WAIT sockets 重新用於新的 TCP 連接,默認爲 0 ,表示關閉;
net.ipv4.tcp_mem = 94500000 915000000 927000000  #1低於此值,TCP沒有內存壓力,2在此值下,進入內存壓力階段,3高於此值,TCP拒絕分配socket.上述內存單位是頁
net.ipv4.tcp_max_orphans = 3276800 #選項用於設定系統中最多有多少個TCP套接字不被關聯到任何一個用戶文件句柄上,如果超過這個數字,孤立連接將立即被複位並打印出警告信息 
net.ipv4.tcp_fin_timeout = 30              #修改系統默認的 TIMEOUT 時間
net.ipv4.tcp_keepalive_time = 300          #表示當keepalive起用的時候,TCP發送keepalive消息的頻度。缺省是2小時,改爲5分鐘。
net.ipv4.ip_local_port_range = 1024    65000    #表示用於向外連接的端口範圍。缺省情況下過窄:32768到61000,改爲1024到65535。
net.ipv4.ip_conntrack_max = 655360            #增大iptables狀態跟蹤表
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180     #設置默認 TCP 連接時長爲180秒

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章