<small id="hjex1"></small>

        <tbody id="hjex1"></tbody>
      1. <menuitem id="hjex1"></menuitem>
        <menuitem id="hjex1"></menuitem>

          安基網 首頁 系統 網絡學院 查看內容

          centos7.4內核調優,tcp單服務器萬級并發

          2019-3-11 12:05| 投稿: xiaotiger |來自: 互聯網


          免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!

          摘要: 在使用linux的centos7.4遇到的各種坑,其中一個項目采用四層架構,配置層,平臺層,邏輯服務器管理層和集體邏輯服務器層的,一個整體的游戲項目,其中,作為整個項目負責人和架構打架著,項目運行一年來,遇到了各種各樣怪異的問題。其中就是tcp緩存區堵塞的問題,剛開始時候,以為是代碼問題,花了半 ...

          在使用linux的centos7.4遇到的各種坑,其中一個項目采用四層架構,配置層,平臺層,邏輯服務器管理層和集體邏輯服務器層的,一個整體的游戲項目,其中,作為整個項目負責人和架構打架著,項目運行一年來,遇到了各種各樣怪異的問題。其中就是tcp緩存區堵塞的問題,剛開始時候,以為是代碼問題,花了半年的時間來排除,驗證,把能想到的問題都做了一個遍,問題還是存在。最后應該幾個調優和驗證。附上算比較穩定centos7.4的內核調優詳細參數如下:

          內核配置文件:/etc/sysctl.conf

          net.ipv4.tcp_mem = 768432 2097152 15242880

          net.ipv4.tcp_wmem = 40960 163840 4194304

          net.ipv4.tcp_rmem = 40960 873800 4194304

          #net.core.somaxconn=6553600

          net.core.wmem_default = 8388608

          net.core.rmem_default = 8388608

          net.core.rmem_max = 524288000

          net.core.wmem_max = 524288000

          net.ipv4.tcp_syncookies=1

          net.ipv4.tcp_max_syn_backlog=81920

          net.ipv4.tcp_timestamps=0

          # 參數的值決定了內核放棄鏈接之前發送SYN+ACK包的數量,該參數對應系統路徑為:/proc/sys/net/ipv4/tcp_synack_retries,默認是2

          net.ipv4.tcp_synack_retries=3

          # 表示內核放棄建立鏈接之前發送SYN包的數量,該參數對應系統路徑為:/proc/sys/net/ipv4/tcp_syn_retries,默認是6

          net.ipv4.tcp_syn_retries=3

          net.ipv4.tcp_fin_timeout = 30

          net.ipv4.tcp_keepalive_time = 300

          net.ipv4.ip_local_port_range = 20000 65000

          net.ipv4.tcp_max_tw_buckets = 6000

          net.ipv4.route.max_size = 5242880

          kernel.sem=250 65536 100 2048

          kernel.msgmnb = 4203520

          kernel.msgmni = 64

          kernel.msgmax = 65535

          #設置最大內存共享段大小bytes

          kernel.shmmax = 68719476736

          kernel.shmall = 4294967296

          kernel.shmmni = 655360

          net.ipv4.tcp_tw_reuse=1

          net.ipv4.tcp_tw_recycle = 1

          net.ipv4.tcp_window_scaling = 1

          net.ipv4.tcp_no_metrics_save=1

          # 開啟SYN洪水攻擊保護

          kernel.core_uses_pid = 1

          net.ipv4.conf.lo.arp_announce=2

          net.ipv4.tcp_sack = 1

          kernel.randomize_va_space=1

          net.nf_conntrack_max = 25000000

          net.netfilter.nf_conntrack_max = 25000000

          net.netfilter.nf_conntrack_tcp_timeout_established = 180

          #net.ipv4.netfilter.ip_conntrack_max=1000000

          net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120

          net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60

          net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

          #避免放大攻擊

          net.ipv4.icmp_echo_ignore_broadcasts=1

          #關閉ipv6

          net.ipv6.conf.all.disable_ipv6 = 1

          net.ipv6.conf.default.disable_ipv6 = 1

          # 開啟惡意icmp錯誤消息保護

          net.ipv4.icmp_ignore_bogus_error_responses = 1

          #關閉路由轉發

          net.ipv4.ip_forward = 0

          net.ipv4.conf.all.send_redirects = 0

          net.ipv4.conf.default.send_redirects = 0

          #開啟反向路徑過濾

          net.ipv4.conf.all.rp_filter = 1

          net.ipv4.conf.default.rp_filter = 1

          #處理無源路由的包

          net.ipv4.conf.all.accept_source_route = 0

          net.ipv4.conf.default.accept_source_route = 0

          #關閉sysrq功能

          kernel.sysrq = 0

          #每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目

          net.core.netdev_max_backlog = 262144

          #限制僅僅是為了防止簡單的DoS 攻擊

          net.ipv4.tcp_max_orphans = 3276800

          # 確保無人能修改路由表

          net.ipv4.conf.all.accept_redirects = 0

          net.ipv4.conf.default.accept_redirects = 0

          net.ipv4.conf.all.secure_redirects = 0

          net.ipv4.conf.default.secure_redirects = 0

          vm.swappiness = 0

          #決定檢查過期多久鄰居條目

          net.ipv4.neigh.default.gc_stale_time=120

          fs.file-max = 40000500

          fs.nr_open = 40000500

          kernel.perf_cpu_time_max_percent=60

          kernel.perf_event_max_sample_rate=6250

          kernel.sched_migration_cost_ns=5000000

          net.core.optmem_max= 25165824

          vm.max_map_count=262144

          net.core.somaxconn = 65535

          #使用arp_announce / arp_ignore解決ARP映射問題

          net.ipv4.conf.default.arp_announce = 2

          net.ipv4.conf.all.arp_announce=2

          net.ipv4.conf.lo.arp_announce=2



          小編推薦:欲學習電腦技術、系統維護、網絡管理、編程開發和安全攻防等高端IT技術,請 點擊這里 注冊賬號,公開課頻道價值萬元IT培訓教程免費學,讓您少走彎路、事半功倍,好工作升職加薪!

          本文出自:https://www.toutiao.com/a6661421504380535300/

          免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!


          鮮花

          握手
          1

          雷人

          路過

          雞蛋

          剛表態過的朋友 (1 人)

          相關閱讀

          最新評論

           最新
          返回頂部
          北京赛车高手经验分享