• linux 系统 tcp 内核参数


    来自:https://www.kernel.org/doc/html/latest/admin-guide/sysctl/user.html

    参数来自:https://www.kernel.org/doc/html/latest/networking/ip-sysctl.html

    sysctl 命令:
    sysctl命令被用于在内核运行时动态地修改内核的运行参数,
    可用的内核参数在目录/proc/sys中。它包含一些TCP/ip堆栈和
    虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量。

    sysctl -a :查看所有可读变量
    编辑此文件:/etc/sysctl.conf :内核参数设定文件,永久有效

    sysctl :
    -p:从配置文件“/etc/sysctl.conf”加载内核参数设置
    sysctl -a :查看所有可读变量

    Table : Subdirectories in /proc/sys/net

    DirectoryContent DirectoryContent
    core 内核 General parameter   appletalk Appletalk protocol
    unix   unix 套接字 Unix domain sockets   netrom NET/ROM
    802   802 协议,物理层数据链路层 E802 protocol   ax25 AX25
    ethernet  以太网 Ethernet protocol   rose X.25 PLP layer
    ipv4    IP version 4   x25 X.25 protocol
    bridge Bridging   decnet DEC net
    ipv6 IP version 6   tipc TIPC

     

    配置文件

    [root@kube ipv4]# pwd
    /proc/sys/net/ipv4 
    [root@kube ipv4]# ls
    cipso_cache_bucket_size            igmp_qrv                 ip_nonlocal_bind                  tcp_ecn                 tcp_mem                    tcp_synack_retries
    cipso_cache_enable                 inet_peer_maxttl         ip_no_pmtu_disc                   tcp_fack                tcp_min_tso_segs           tcp_syncookies
    cipso_rbm_optfmt                   inet_peer_minttl         neigh                             tcp_fastopen            tcp_moderate_rcvbuf        tcp_syn_retries
    cipso_rbm_strictvalid              inet_peer_threshold      ping_group_range                  tcp_fastopen_key        tcp_mtu_probing            tcp_thin_dupack
    conf                               ip_default_ttl           route                             tcp_fin_timeout         tcp_no_metrics_save        tcp_thin_linear_timeouts
    fwmark_reflect                     ip_dynaddr               tcp_abort_on_overflow             tcp_frto                tcp_notsent_lowat          tcp_timestamps
    icmp_echo_ignore_all               ip_early_demux           tcp_adv_win_scale                 tcp_invalid_ratelimit   tcp_orphan_retries         tcp_tso_win_divisor
    icmp_echo_ignore_broadcasts        ip_forward               tcp_allowed_congestion_control    tcp_keepalive_intvl     tcp_reordering             tcp_tw_recycle
    icmp_errors_use_inbound_ifaddr     ip_forward_use_pmtu      tcp_app_win                       tcp_keepalive_probes    tcp_retrans_collapse       tcp_tw_reuse
    icmp_ignore_bogus_error_responses  ipfrag_high_thresh       tcp_autocorking                   tcp_keepalive_time      tcp_retries1               tcp_window_scaling
    icmp_msgs_burst                    ipfrag_low_thresh        tcp_available_congestion_control  tcp_limit_output_bytes  tcp_retries2               tcp_wmem
    icmp_msgs_per_sec                  ipfrag_max_dist          tcp_base_mss                      tcp_low_latency         tcp_rfc1337                tcp_workaround_signed_windows
    icmp_ratelimit                     ipfrag_secret_interval   tcp_challenge_ack_limit           tcp_max_orphans         tcp_rmem                   udp_mem
    icmp_ratemask                      ipfrag_time              tcp_congestion_control            tcp_max_ssthresh        tcp_sack                   udp_rmem_min
    igmp_max_memberships               ip_local_port_range      tcp_dsack                         tcp_max_syn_backlog     tcp_slow_start_after_idle  udp_wmem_min
    igmp_max_msf                       ip_local_reserved_ports  tcp_early_retrans                 tcp_max_tw_buckets      tcp_stdurg                 xfrm4_gc_thresh
    [root@kube ipv4]# 

     内核参数

    参数

    描述

    默认值

    优化值

    net.core.rmem_default

    默认的TCP数据接收窗口大小(字节)。

    229376

    256960

    net.core.rmem_max

    最大的TCP数据接收窗口(字节)。

    131071

    513920

    net.core.wmem_default

    默认的TCP数据发送窗口大小(字节)。

    229376

    256960

    net.core.wmem_max

    最大的TCP数据发送窗口(字节)。

    131071

    513920

    net.core.netdev_max_backlog

    在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

    1000

    2000

    net.core.somaxconn

    定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数。

    128

    2048

    net.core.optmem_max

    表示每个套接字所允许的最大缓冲区的大小。

    20480

    81920

    常用参数说明

    [root@kube ipv4]# sysctl -a |grep net.ipv4.
    net.ipv4.cipso_cache_bucket_size = 10
    net.ipv4.cipso_cache_enable = 1
    net.ipv4.cipso_rbm_optfmt = 0
    net.ipv4.cipso_rbm_strictvalid = 1
    net.ipv4.conf.all.accept_local = 0
    net.ipv4.conf.all.accept_redirects = 0
    net.ipv4.conf.all.accept_source_route = 0
    net.ipv4.conf.all.arp_accept = 0
    net.ipv4.conf.all.arp_announce = 0
    net.ipv4.conf.all.arp_filter = 0
    net.ipv4.conf.all.arp_ignore = 0
    net.ipv4.conf.all.arp_notify = 0
    net.ipv4.conf.all.bootp_relay = 0
    net.ipv4.conf.all.disable_policy = 0
    net.ipv4.conf.all.disable_xfrm = 0
    net.ipv4.conf.all.force_igmp_version = 0
    net.ipv4.conf.all.forwarding = 1
    net.ipv4.conf.all.log_martians = 0
    net.ipv4.conf.all.mc_forwarding = 0
    net.ipv4.conf.all.medium_id = 0
    net.ipv4.conf.all.promote_secondaries = 1
    net.ipv4.conf.all.proxy_arp = 0
    net.ipv4.conf.all.proxy_arp_pvlan = 0
    net.ipv4.conf.all.route_localnet = 0
    net.ipv4.conf.all.rp_filter = 1
    net.ipv4.conf.all.secure_redirects = 1
    net.ipv4.conf.all.send_redirects = 1
    net.ipv4.conf.all.shared_media = 1
    net.ipv4.conf.all.src_valid_mark = 0
    net.ipv4.conf.all.tag = 0
    net.ipv4.conf.default.accept_local = 0
    net.ipv4.conf.default.accept_redirects = 1
    net.ipv4.conf.default.accept_source_route = 0
    net.ipv4.conf.default.arp_accept = 0
    net.ipv4.conf.default.arp_announce = 0
    net.ipv4.conf.default.arp_filter = 0
    net.ipv4.conf.default.arp_ignore = 0
    net.ipv4.conf.default.arp_notify = 0
    net.ipv4.conf.default.bootp_relay = 0
    net.ipv4.conf.default.disable_policy = 0
    net.ipv4.conf.default.disable_xfrm = 0
    net.ipv4.conf.default.force_igmp_version = 0
    net.ipv4.conf.default.forwarding = 1
    net.ipv4.conf.default.log_martians = 0
    net.ipv4.conf.default.mc_forwarding = 0
    net.ipv4.conf.default.medium_id = 0
    net.ipv4.conf.default.promote_secondaries = 1
    net.ipv4.conf.default.proxy_arp = 0
    net.ipv4.conf.default.proxy_arp_pvlan = 0
    net.ipv4.conf.default.route_localnet = 0
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.default.secure_redirects = 1
    net.ipv4.conf.default.send_redirects = 1
    net.ipv4.conf.default.shared_media = 1
    net.ipv4.conf.default.src_valid_mark = 0
    net.ipv4.conf.default.tag = 0
    net.ipv4.conf.docker0.accept_local = 0
    net.ipv4.conf.docker0.accept_redirects = 1
    net.ipv4.conf.docker0.accept_source_route = 0
    net.ipv4.conf.docker0.arp_accept = 0
    net.ipv4.conf.docker0.arp_announce = 0
    net.ipv4.conf.docker0.arp_filter = 0
    net.ipv4.conf.docker0.arp_ignore = 0
    net.ipv4.conf.docker0.arp_notify = 0
    net.ipv4.conf.docker0.bootp_relay = 0
    net.ipv4.conf.docker0.disable_policy = 0
    net.ipv4.conf.docker0.disable_xfrm = 0
    net.ipv4.conf.docker0.force_igmp_version = 0
    net.ipv4.conf.docker0.forwarding = 1
    net.ipv4.conf.docker0.log_martians = 0
    net.ipv4.conf.docker0.mc_forwarding = 0
    net.ipv4.conf.docker0.medium_id = 0
    net.ipv4.conf.docker0.promote_secondaries = 1
    net.ipv4.conf.docker0.proxy_arp = 0
    net.ipv4.conf.docker0.proxy_arp_pvlan = 0
    net.ipv4.conf.docker0.route_localnet = 0
    net.ipv4.conf.docker0.rp_filter = 1
    net.ipv4.conf.docker0.secure_redirects = 1
    net.ipv4.conf.docker0.send_redirects = 1
    net.ipv4.conf.docker0.shared_media = 1
    net.ipv4.conf.docker0.src_valid_mark = 0
    net.ipv4.conf.docker0.tag = 0
    net.ipv4.conf.ens192.accept_local = 0
    net.ipv4.conf.ens192.accept_redirects = 1
    net.ipv4.conf.ens192.accept_source_route = 0
    net.ipv4.conf.ens192.arp_accept = 0
    net.ipv4.conf.ens192.arp_announce = 0
    net.ipv4.conf.ens192.arp_filter = 0
    net.ipv4.conf.ens192.arp_ignore = 0
    net.ipv4.conf.ens192.arp_notify = 0
    net.ipv4.conf.ens192.bootp_relay = 0
    net.ipv4.conf.ens192.disable_policy = 0
    net.ipv4.conf.ens192.disable_xfrm = 0
    net.ipv4.conf.ens192.force_igmp_version = 0
    net.ipv4.conf.ens192.forwarding = 1
    net.ipv4.conf.ens192.log_martians = 0
    net.ipv4.conf.ens192.mc_forwarding = 0
    net.ipv4.conf.ens192.medium_id = 0
    net.ipv4.conf.ens192.promote_secondaries = 1
    net.ipv4.conf.ens192.proxy_arp = 0
    net.ipv4.conf.ens192.proxy_arp_pvlan = 0
    net.ipv4.conf.ens192.route_localnet = 0
    net.ipv4.conf.ens192.rp_filter = 1
    net.ipv4.conf.ens192.secure_redirects = 1
    net.ipv4.conf.ens192.send_redirects = 1
    net.ipv4.conf.ens192.shared_media = 1
    net.ipv4.conf.ens192.src_valid_mark = 0
    net.ipv4.conf.ens192.tag = 0
    net.ipv4.conf.lo.accept_local = 0
    net.ipv4.conf.lo.accept_redirects = 1
    net.ipv4.conf.lo.accept_source_route = 1
    net.ipv4.conf.lo.arp_accept = 0
    net.ipv4.conf.lo.arp_announce = 0
    net.ipv4.conf.lo.arp_filter = 0
    net.ipv4.conf.lo.arp_ignore = 0
    net.ipv4.conf.lo.arp_notify = 0
    net.ipv4.conf.lo.bootp_relay = 0
    net.ipv4.conf.lo.disable_policy = 1
    net.ipv4.conf.lo.disable_xfrm = 1
    net.ipv4.conf.lo.force_igmp_version = 0
    net.ipv4.conf.lo.forwarding = 1
    net.ipv4.conf.lo.log_martians = 0
    net.ipv4.conf.lo.mc_forwarding = 0
    net.ipv4.conf.lo.medium_id = 0
    net.ipv4.conf.lo.promote_secondaries = 0
    net.ipv4.conf.lo.proxy_arp = 0
    net.ipv4.conf.lo.proxy_arp_pvlan = 0
    net.ipv4.conf.lo.route_localnet = 0
    net.ipv4.conf.lo.rp_filter = 0
    net.ipv4.conf.lo.secure_redirects = 1
    net.ipv4.conf.lo.send_redirects = 1
    net.ipv4.conf.lo.shared_media = 1
    net.ipv4.conf.lo.src_valid_mark = 0
    net.ipv4.conf.lo.tag = 0
    net.ipv4.fwmark_reflect = 0
    net.ipv4.icmp_echo_ignore_all = 0
    net.ipv4.icmp_echo_ignore_broadcasts = 1
    net.ipv4.icmp_errors_use_inbound_ifaddr = 0
    net.ipv4.icmp_ignore_bogus_error_responses = 1
    net.ipv4.icmp_msgs_burst = 50
    net.ipv4.icmp_msgs_per_sec = 1000
    net.ipv4.icmp_ratelimit = 1000
    net.ipv4.icmp_ratemask = 6168
    net.ipv4.igmp_max_memberships = 20
    net.ipv4.igmp_max_msf = 10
    net.ipv4.igmp_qrv = 2
    net.ipv4.inet_peer_maxttl = 600
    net.ipv4.inet_peer_minttl = 120
    net.ipv4.inet_peer_threshold = 65664
    net.ipv4.ip_default_ttl = 64                 // ip 数据包字段 生存时间默认值
    net.ipv4.ip_dynaddr = 0
    net.ipv4.ip_early_demux = 1
    net.ipv4.ip_forward = 1                   //是否开启内核转发,0 禁用,1 启动
    net.ipv4.ip_forward_use_pmtu = 0
    net.ipv4.ip_local_port_range = 32768    60999    //定义 tcp/udp 本地端口范围
    net.ipv4.ip_local_reserved_ports = 
    net.ipv4.ip_no_pmtu_disc = 0
    net.ipv4.ip_nonlocal_bind = 0
    net.ipv4.ipfrag_high_thresh = 4194304
    net.ipv4.ipfrag_low_thresh = 3145728
    net.ipv4.ipfrag_max_dist = 64
    net.ipv4.ipfrag_secret_interval = 600
    net.ipv4.ipfrag_time = 30
    net.ipv4.neigh.default.anycast_delay = 100
    net.ipv4.neigh.default.app_solicit = 0
    net.ipv4.neigh.default.base_reachable_time_ms = 30000
    net.ipv4.neigh.default.delay_first_probe_time = 5
    net.ipv4.neigh.default.gc_interval = 30
    net.ipv4.neigh.default.gc_stale_time = 60
    net.ipv4.neigh.default.gc_thresh1 = 128
    net.ipv4.neigh.default.gc_thresh2 = 512
    net.ipv4.neigh.default.gc_thresh3 = 1024
    net.ipv4.neigh.default.locktime = 100
    net.ipv4.neigh.default.mcast_solicit = 3
    net.ipv4.neigh.default.proxy_delay = 80
    net.ipv4.neigh.default.proxy_qlen = 64
    net.ipv4.neigh.default.retrans_time_ms = 1000
    net.ipv4.neigh.default.ucast_solicit = 3
    net.ipv4.neigh.default.unres_qlen = 31
    net.ipv4.neigh.default.unres_qlen_bytes = 65536
    net.ipv4.neigh.docker0.anycast_delay = 100
    net.ipv4.neigh.docker0.app_solicit = 0
    net.ipv4.neigh.docker0.base_reachable_time_ms = 30000
    net.ipv4.neigh.docker0.delay_first_probe_time = 5
    net.ipv4.neigh.docker0.gc_stale_time = 60
    net.ipv4.neigh.docker0.locktime = 100
    net.ipv4.neigh.docker0.mcast_solicit = 3
    net.ipv4.neigh.docker0.proxy_delay = 80
    net.ipv4.neigh.docker0.proxy_qlen = 64
    net.ipv4.neigh.docker0.retrans_time_ms = 1000
    net.ipv4.neigh.docker0.ucast_solicit = 3
    net.ipv4.neigh.docker0.unres_qlen = 31
    net.ipv4.neigh.docker0.unres_qlen_bytes = 65536
    net.ipv4.neigh.ens192.anycast_delay = 100
    net.ipv4.neigh.ens192.app_solicit = 0
    net.ipv4.neigh.ens192.base_reachable_time_ms = 30000
    net.ipv4.neigh.ens192.delay_first_probe_time = 5
    net.ipv4.neigh.ens192.gc_stale_time = 60
    net.ipv4.neigh.ens192.locktime = 100
    net.ipv4.neigh.ens192.mcast_solicit = 3
    net.ipv4.neigh.ens192.proxy_delay = 80
    net.ipv4.neigh.ens192.proxy_qlen = 64
    net.ipv4.neigh.ens192.retrans_time_ms = 1000
    net.ipv4.neigh.ens192.ucast_solicit = 3
    net.ipv4.neigh.ens192.unres_qlen = 31
    net.ipv4.neigh.ens192.unres_qlen_bytes = 65536
    net.ipv4.neigh.lo.anycast_delay = 100
    net.ipv4.neigh.lo.app_solicit = 0
    net.ipv4.neigh.lo.base_reachable_time_ms = 30000
    net.ipv4.neigh.lo.delay_first_probe_time = 5
    net.ipv4.neigh.lo.gc_stale_time = 60
    net.ipv4.neigh.lo.locktime = 100
    net.ipv4.neigh.lo.mcast_solicit = 3
    net.ipv4.neigh.lo.proxy_delay = 80
    net.ipv4.neigh.lo.proxy_qlen = 64
    net.ipv4.neigh.lo.retrans_time_ms = 1000
    net.ipv4.neigh.lo.ucast_solicit = 3
    net.ipv4.neigh.lo.unres_qlen = 31
    net.ipv4.neigh.lo.unres_qlen_bytes = 65536
    net.ipv4.ping_group_range = 1    0
    net.ipv4.route.error_burst = 5000
    net.ipv4.route.error_cost = 1000
    net.ipv4.route.gc_elasticity = 8
    net.ipv4.route.gc_interval = 60
    net.ipv4.route.gc_min_interval = 0
    net.ipv4.route.gc_min_interval_ms = 500
    net.ipv4.route.gc_thresh = -1
    net.ipv4.route.gc_timeout = 300
    net.ipv4.route.max_size = 2147483647
    net.ipv4.route.min_adv_mss = 256
    net.ipv4.route.min_pmtu = 552
    net.ipv4.route.mtu_expires = 600
    net.ipv4.route.redirect_load = 20
    net.ipv4.route.redirect_number = 9
    net.ipv4.route.redirect_silence = 20480
    net.ipv4.tcp_abort_on_overflow = 0
    net.ipv4.tcp_adv_win_scale = 1
    net.ipv4.tcp_allowed_congestion_control = cubic reno
    net.ipv4.tcp_app_win = 31
    net.ipv4.tcp_autocorking = 1
    net.ipv4.tcp_available_congestion_control = cubic reno
    net.ipv4.tcp_base_mss = 512
    net.ipv4.tcp_challenge_ack_limit = 1000
    net.ipv4.tcp_congestion_control = cubic
    net.ipv4.tcp_dsack = 1
    net.ipv4.tcp_early_retrans = 3
    net.ipv4.tcp_ecn = 2
    net.ipv4.tcp_fack = 1
    net.ipv4.tcp_fastopen = 0
    net.ipv4.tcp_fastopen_key = 3d9f4df5-5c82290b-6c465833-328c3b2d
    net.ipv4.tcp_fin_timeout = 60
    net.ipv4.tcp_frto = 2
    net.ipv4.tcp_invalid_ratelimit = 500
    net.ipv4.tcp_keepalive_intvl = 75        //keepalive 消息失败后的重新探测间隔,乘以 keepalive_probes 的次数代表多久后连接失效
    net.ipv4.tcp_keepalive_probes = 9            // 尝试次数9 次
    net.ipv4.tcp_keepalive_time = 7200              //启用keepalive 时,keepalive 多久发一次消息,默认2 小时
    net.ipv4.tcp_limit_output_bytes = 262144
    net.ipv4.tcp_low_latency = 0                 //旧选项不再有效
    net.ipv4.tcp_max_orphans = 8192
    net.ipv4.tcp_max_ssthresh = 0
    net.ipv4.tcp_max_syn_backlog = 128                     //一个 socket 最大请求数  SYN_RECV
    net.ipv4.tcp_max_tw_buckets = 8192                //保存最大  timewait 数量
    net.ipv4.tcp_mem = 42471    56631    84942
    net.ipv4.tcp_min_tso_segs = 2
    net.ipv4.tcp_moderate_rcvbuf = 1
    net.ipv4.tcp_mtu_probing = 0
    net.ipv4.tcp_no_metrics_save = 0
    net.ipv4.tcp_notsent_lowat = -1
    net.ipv4.tcp_orphan_retries = 0
    net.ipv4.tcp_reordering = 3
    net.ipv4.tcp_retrans_collapse = 1
    net.ipv4.tcp_retries1 = 3          //回收一个 连接 多少次重试
    net.ipv4.tcp_retries2 = 15         //断开与远端主机的会话次数
    net.ipv4.tcp_rfc1337 = 0
    net.ipv4.tcp_rmem = 4096    87380    6291456
    net.ipv4.tcp_sack = 1                          //启动sack ,有选择的应答乱序的包,之重发丢失的数据包
    net.ipv4.tcp_slow_start_after_idle = 1
    net.ipv4.tcp_stdurg = 0
    net.ipv4.tcp_syn_retries = 6                    // 重启发送syn 包的次数
    net.ipv4.tcp_synack_retries = 5
    net.ipv4.tcp_syncookies = 1                  //开启 syncookies ,当套接字 syn 待办事项队列溢出时,发出syncookies 防止常见的 syn flood 
    net.ipv4.tcp_thin_dupack = 0
    net.ipv4.tcp_thin_linear_timeouts = 0
    net.ipv4.tcp_timestamps = 1
    net.ipv4.tcp_tso_win_divisor = 3
    net.ipv4.tcp_tw_recycle = 0             //设置 TIME_AIT 快速回收
    net.ipv4.tcp_tw_reuse = 0              //设置timewait 的重用,超过这个值立即删除可以复用
    net.ipv4.tcp_window_scaling = 1
    net.ipv4.tcp_wmem = 4096    16384    4194304
    net.ipv4.tcp_workaround_signed_windows = 0
    net.ipv4.udp_mem = 43563    58086    87126
    net.ipv4.udp_rmem_min = 4096
    net.ipv4.udp_wmem_min = 4096
    net.ipv4.xfrm4_gc_thresh = 32768
    sysctl: reading key "net.ipv6.conf.all.stable_secret"
    sysctl: reading key "net.ipv6.conf.default.stable_secret"
    sysctl: reading key "net.ipv6.conf.docker0.stable_secret"
    sysctl: reading key "net.ipv6.conf.ens192.stable_secret"
    sysctl: reading key "net.ipv6.conf.lo.stable_secret"
    [root@kube ipv4]# 
  • 相关阅读:
    【转】Fiddler 教程
    【转】java中三个类别加载器的关系以及各自加载的类的范围
    【转】HTTP协议详解
    【转】Google是如何做代码审查的?
    JSP页面的三种include方式
    forward和sendRedirect的差别
    cxf方式实现WebService的简单实例
    Pushlet简单入门实例
    Java学习(二十三):log4j日志打印
    PL/SQL相关问题解决办法汇总
  • 原文地址:https://www.cnblogs.com/zy09/p/13131054.html
Copyright © 2020-2023  润新知