linux下sysctl.conf 配置参数解析

时间:2024-4-18    作者:江湖剑客    分类:

系统网络性能优化配置

最大的待发送TCP数据缓冲区空间

net.inet.tcp.sendspace=65536

最大的接受TCP缓冲区空间

net.inet.tcp.recvspace=65536

最大的接受UDP缓冲区大小

net.inet.udp.sendspace=65535

最大的发送UDP数据缓冲区大小

net.inet.udp.maxdgram=65535

本地套接字连接的数据发送空间

net.local.stream.sendspace=65535

加快网络性能的协议

net.inet.tcp.rfc1323=1
net.inet.tcp.rfc1644=1
net.inet.tcp.rfc3042=1
net.inet.tcp.rfc3390=1

最大的套接字缓冲区

kern.ipc.maxsockbuf=2097152

系统中允许的最多文件数量

kern.maxfiles=65536

每个进程能够同时打开的最大文件数量

kern.maxfilesperproc=32768

延迟ACK应答数据包设置

net.inet.tcp.delayed_ack=0

屏蔽ICMP重定向功能

net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0

防止ICMP广播风暴

net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0

限制系统发送ICMP速率

net.inet.icmp.icmplim=100

安全参数

net.inet.icmp.icmplim_output=0
net.inet.tcp.drop_synfin=1

清除未正常断开的TCP连接

net.inet.tcp.always_keepalive=1

控制接收到已关闭端口数据包的行为

net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1

为网络数据连接时提供缓冲

net.inet.tcp.inflight.enable=1

路由表与ARP数据表优化

net.inet.ip.fastforwarding=0

并发连接数

kern.ipc.somaxconn=32768

禁止用户查看其他用户的进程

security.bsd.see_other_uids=0

设置kernel安全级别

kern.securelevel=0

记录TCP与UDP连接

net.inet.tcp.log_in_vain=1
net.inet.udp.log_in_vain=1

防止不正确的UDP包攻击

net.inet.udp.checksum=1

防止DOS攻击

net.inet.tcp.syncookies=1

共享内存支持与限制

kern.ipc.shm_use_phys=1
kern.ipc.shmmax=67108864
kern.ipc.shmall=32768

程序崩溃记录控制

kern.coredump=0

lo本地数据流接收和发送空间

net.local.stream.recvspace=65536
net.local.dgram.maxdgram=16384
net.local.dgram.recvspace=65536

数据包数据段大小

net.inet.tcp.mssdflt=1460
net.inet.tcp.minmss=1460
net.inet.raw.maxdgram=65536
net.inet.raw.recvspace=65536

动态防火墙规则数量与TCP连接空闲保留时间

net.inet.ip.fw.dyn_max=65535
net.inet.ipf.fr_tcpidletimeout=864000

Linux系统相关参数

/proc/sys/net/core/wmem_max
/proc/sys/net/core/rmem_max
/proc/sys/net/ipv4/tcp_wmem
/proc/sys/net/ipv4/tcp_rmem
/proc/sys/net/ipv4/tcp_mem
/proc/sys/net/core/netdev_max_backlog
/proc/sys/net/core/somaxconn
/proc/sys/net/core/optmem_max
/proc/sys/net/ipv4/tcp_max_syn_backlog
/proc/sys/net/ipv4/tcp_retries2
/proc/sys/net/ipv4/ip_local_port_range
/proc/sys/net/ipv4/tcp_keepalive_time
/proc/sys/net/ipv4/tcp_keepalive_intvl
/proc/sys/net/ipv4/tcp_keepalive_probes

其他Linux系统网络优化参数

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000

其他系统优化配置

禁用包过滤功能

net.ipv4.ip_forward = 0

启用源路由核查功能

net.ipv4.conf.default.rp_filter = 1

禁用所有IP源路由

net.ipv4.conf.default.accept_source_route = 0

使用sysrq组合键是了解系统目前运行情况,为安全起见设为0关闭

kernel.sysrq = 0

控制core文件的文件名是否添加pid作为扩展

kernel.core_uses_pid = 1

开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies来处理

net.ipv4.tcp_syncookies = 1

每个消息队列的大小(单位:字节)限制

kernel.msgmnb = 65536

整个系统最大消息队列数量限制

kernel.msgmax = 65536

单个共享内存段的大小(单位:字节)限制,计算公式G10241024*1024(字节)

kernel.shmmax = 68719476736

所有内存大小(单位:页,1页 = 4Kb),计算公式G10241024*1024/4KB(页)

kernel.shmall = 4294967296

timewait的数量,默认是180000

net.ipv4.tcp_max_tw_buckets = 6000

开启有选择的应答

net.ipv4.tcp_sack = 1

支持更大的TCP窗口. 如果TCP窗口最大超过65535(64K), 必须设置该数值为1

net.ipv4.tcp_window_scaling = 1

TCP读buffer

net.ipv4.tcp_rmem = 4096 131072 1048576

TCP写buffer

net.ipv4.tcp_wmem = 4096 131072 1048576

为TCP socket预留用于发送缓冲的内存默认值(单位:字节)

net.core.wmem_default = 8388608

为TCP socket预留用于发送缓冲的内存最大值(单位:字节)

net.core.wmem_max = 16777216

为TCP socket预留用于接收缓冲的内存默认值(单位:字节)

net.core.rmem_default = 8388608

为TCP socket预留用于接收缓冲的内存最大值(单位:字节)

net.core.rmem_max = 16777216

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

net.core.netdev_max_backlog = 262144

web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128,而nginx定义的NGX_LISTEN_BACKLOG默认为511,所以有必要调整这个值

net.core.somaxconn =


扫描二维码,在手机上阅读