- 系统级打开文件数
fs.file-max = 20000000 - 单用户打开文件数
fs.nr_open = 20000000 - 限制一个用户能够监视的文件或目录的数量
fs.inotify.max_user_watches=524288 - 最大进程数
kernel.pid_max = 65536 - 禁用sysrq(键盘上截图键)
kernel.sysrq = 0 - 交换分区权重
vm.swappiness = 10 - 给生成的core文件加上pid
kernel.core_uses_pid = 1 - 设置临时端口使用范围
net.ipv4.ip_local_port_range = 10000 65535 - 设置预留端口
net.ipv4.ip_local_reserved_ports = 15000-16000,18796,25000-26000,28796 - 共享内存: ipcs --help
- 一个消息队列的最大长度 Byte
kernel.msgmnb = 65536 - 从一个进程发送到另一个进程的消息的最大长度 Byte
kernel.msgmax = 65536
kernel.msgmni = 16 - 定义单个共享内存段的最大值,建议物理内存的50%
kernel.shmmax = 2147483648 - 共享内存页大小
kernel.shmall = 524288 - 网络: TCP/IP, socket
- 全连接队列长度, (默认 128)
net.core.somaxconn = 4096 - 半连接队列长度, 当使用sysncookies无效 (syn队列, 默认128)
net.ipv4.tcp_max_syn_backlog = 4096 - 开启SYN Cookies(出现SYN等待队列溢出时可防范少量SYN攻击, 和上面不能同事开启)
net.ipv4.tcp_syncookies = 0 - 最大孤儿socket数量,一个孤儿socket占用64KB,当socket主动close掉,处于fin-wait1, last-ack(快速建立大量连接时,需要关注这个值)
net.ipv4.tcp_max_orphans = 10240 - 孤儿socket废弃前重试的次数
net.ipv4.tcp_orphan_retries = 1 - 网卡数据包队列长度
net.core.netdev_max_backlog = 5000 - time-wait 最大队列长度 (如果超过这个数, TIME_WAIT套接字将立刻被清除并打印警告信息)
net.ipv4.tcp_max_tw_buckets = 500 - 开启Selective ACK,用来查找特定丢失数据包,有助于快速恢复状态
- 开启有选择应答模式(允许接收端向发送端传递关于字节流重丢失的序列号,减少不必要的重传)
net.ipv4.tcp_sack = 1 - 开启tcp的滑动窗口
net.ipv4.tcp_window_scaling = 1 - 开启TCP连接中TIME-WAIT sockets的快速回收
-net.ipv4.tcp_tw_recycle = 1 - 表示开启重用. 允许将TIME-WAIT sockets重新用于新的TCP连接
net.ipv4.tcp_tw_reuse = 1 - tcp报文探测时间间隔, 单位s
net.ipv4.tcp_keepalive_intvl = 30 - tcp连接多少秒后没有数据报文时启动探测报文
net.ipv4.tcp_keepalive_time = 60 - 探测次数(心跳连接失败端口该连接)
net.ipv4.tcp_keepalive_probes = 3 - 保持fin-wait-2 状态多少秒
net.ipv4.tcp_fin_timeout = 15 - 每个套接字所允许得最大缓存区大小
net.core.optmem_max = 1048576 - 给tcp栈分配的内存大小,单位为 mem page, 通常为 4kb(可通过命令查看: getconf PAGESIZE)(这里调整为: 768MB 1GB 1.5G, 适用于 4GB 内存的服务器)
- 第一个数字表示,当 tcp 使用的 page 少于设置值时,kernel不对其进行任何的干预
- 第二个数字表示,当 tcp 使用的 pages 超过了设置值时,kernel 会进入 "memory pressure" 压力模式
- 第三个数字表示,当 tcp 使用的 pages 超过设置值时,就会报: Out of socket memory
net.ipv4.tcp_mem = 196608 262144 393216 - 为每个TCP连接分配读,写缓冲区大小,单位为: Byte (这里调整为: 4KB 8KB 4M)
- 第一个数字表示,为TCP连接分配的最小内存
- 第一个数字表示,为TCP连接分配的缺省内存
- 第一个数字表示,为TCP连接分配的最大内存
- 第二个,第三个分别被wmem_default, wmem_max覆盖
- 一般按照缺省值分配. 1.6GB TCP内存能容纳的连接数约为: 1600MB/16KB = 100K = 10万, 4.0GB TCP内存能容纳的连接数约为: 4000MB/16KB = 250K = 25万
- 读缓冲区
net.ipv4.tcp_rmem = 4096 8192 4194304 - 写缓冲区
net.ipv4.tcp_wmem = 4096 8192 4194304 - 表示发送套接字缓冲区大小的缺省值
net.core.wmem_default = 8192 - 表示接收套接字缓冲区大小的缺省值
net.core.rmem_default = 8192 - 表示发送套接字缓冲区大小的最大值
net.core.rmem_max = 4194304 - 表示接收套接字缓冲区大小的最大值
net.core.wmem_max = 4194304 - 关闭TCP连接中时间戳功能,影响 TIME-WAIT 快速回收
net.ipv4.tcp_timestamps = 0 - syn-ack握手状态重试次数
net.ipv4.tcp_synack_retries = 2
- 外向syn握手重试次数
net.ipv4.tcp_syn_retries = 2
- 丢弃活动连接之前的重传次数,超过次数视为掉线
net.ipv4.tcp_retries2 = 3 - 关闭ipv6 功能
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1 - 响应 ARP 请求
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
-net.ipv4.conf.default.arp_announce = 2 - 开启ipv4路由转发
net.ipv4.ip_forward=1 - 避免放大攻击
net.ipv4.icmp_echo_ignore_broadcasts = 1 - 开启多网卡下接受多播过滤(发给a网卡,b接受到了就被丢弃掉)
-net.ipv4.conf.default.rp_filter = 1 (阿里云ecs不支持作为DR开启该功能)
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0 - 不接受源路由
net.ipv4.conf.default.accept_source_route = 0 - 检查一次相邻层记录的有效性的周期
net.ipv4.neigh.default.gc_stale_time = 120 - 限制整个系统可以打开的文件描述符(file descriptors)的数量
fs.file-max=65535

本文链接:
https://moxao.cn/archives/8/