#增加TCP最大缓冲区大小
net.ipv4.tcp_mem = 768432 2097152 15242880
net.ipv4.tcp_wmem = 40960 163840 4194304
net.ipv4.tcp_rmem = 40960 873800 4194304
# UDP窗口等
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
# Tcp窗口等
net.core.rmem_max = 524288000
net.core.wmem_max = 524288000
# 开启SYN洪水***保护
net.ipv4.tcp_syncookies=1
#增大SYN队列的长度,容纳更多连接(默认值:128)
net.ipv4.tcp_max_syn_backlog=81920
# TCP时间戳(默认值:1)
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
#TCP时间戳(默认值:60)
net.ipv4.tcp_fin_timeout = 30
#间隔多少秒发送1次keepalive探测包(默认值:7200)
net.ipv4.tcp_keepalive_time = 300
#可用端口的范围(默认值:32768 61000)
net.ipv4.ip_local_port_range = 20000 65000
#针对TIME-WAIT,配置其上限(默认值:262144)。如果降低这个值,可以显著的发现time-wait的数量减少,但系统日志中可能出现如下记录:kernel: TCP: time wait bucket table overflow对应的,如果升高这个值,可以显著的发现time-#wait的数量增加。
net.ipv4.tcp_max_tw_buckets = 6000
#内核所允许的最大路由数目
net.ipv4.route.max_size = 5242880
#设置的信号量
kernel.sem=250 65536 100 2048
#文件指定在一个消息队列中最大的字节数 缺省设置:16384。
kernel.msgmnb = 4203520
#文件指定消息队列标识的最大数目。缺省设置:16。
kernel.msgmni = 64
#文件指定了从一个进程发送到另一个进程的消息最大长度。进程间的消息传递是在内核的内存中进行的。不会交换到硬盘上。所以如果增加该值,则将增加操作系统所使用的内存数量
kernel.msgmax = 65535
#设置最大内存共享段大小bytes
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 655360
#表示开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接,默认为0,表示关闭
net.ipv4.tcp_tw_reuse=1
#针对TIME-WAIT,不要开启(默认值:0)。不少文章提到同时开启tcp_tw_recycle和tcp_tw_reuse,会带来C/S在NAT方面的异常。个人接受的做法是,开启tcp_tw_reuse,增加ip_local_port_range的范围,减小tcp_max_tw_buckets和tcp_fin_timeout的值
net.ipv4.tcp_tw_recycle = 1
# Tcp自动窗口
net.ipv4.tcp_window_scaling = 1
#当 interface 接收到的数据包数量比内核处理速度的快的时候, 设置 input 队列最大的 packets 数量值。
net.ipv4.tcp_no_metrics_save=1
#默认coredump filename是“核心”。通过设置core_uses_pid为1(默认值为0),文件名的coredump成为核心PID。如果core_pattern不包括“%p”(默认是不)和core_uses_pid设置。那时pid将附加到文件名上。
kernel.core_uses_pid = 1
#忽略ARP 广播
net.ipv4.conf.lo.arp_announce=2
##启用有选择的应答(1表示启用),通过有选择地应答乱序接收到的报文来提高性能,让发送者只发送丢失的报文段,(对于广域网通信来说)这个选项应该启用,但是会增加对CPU的占用
net.ipv4.tcp_sack = 1
# 开启execshild
kernel.exec-shield = 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.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
#关闭swap
vm.swappiness = 0
#决定检查过期多久邻居条目
net.ipv4.neigh.default.gc_stale_time=120
#内核可分配的最大文件数(默认值:98529)
fs.file-max = 40000500
#定义是单进程最大file-handles(文件句柄)
fs.nr_open = 40000500
# perf分析工具最大能够占用CPU性能的百分比(0:不限制)
kernel.perf_cpu_time_max_percent=60
#设置perf_event的最大取样速率,默认值为100000
kernel.perf_event_max_sample_rate=6250
#该变量用来判断一个进程是否还是hot,如果进程的运行时间(now - p->se.exec_start)小于它,那么内核认为它的code还在cache里,所以该进程还是hot,那么在迁移的时候就不会考虑它
kernel.sched_migration_cost_ns=5000000
#表示每个socket所允许的最大缓冲区的大小(字节)
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