关闭dns反向解析
不关闭的话每台主机ssh访问会延迟一段时间才能连接
#执行完成后需要重启系统才能生效
sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
调整最大进程数限制和文件描述符限制
vi /etc/security/limits.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
nproc:限制每个用户的最大进程数,避免资源被单个用户或进程占用过多
nofile:增加每个进程可以打开的文件描述符数量,提高系统的并发性能
用户进程限制
vi /etc/security/limits.d/20-nproc.conf
* soft nproc 8192
root soft nproc unlimited
* soft nproc 8192
:该行配置指定了软限制(soft limit)的最大进程数(nproc)为 8192。软限制是一种警告级别的限制,表示当前用户或进程可以增加到的最大资源限制,但可以通过适当的权限更改。软限制通常用于提醒用户或进程接近硬限制(hard limit)
root soft nproc unlimited
:该行配置指定了 root 用户的软限制最大进程数为无限制(unlimited)。这意味着 root 用户可以创建任意数量的进程,没有软限制的限制
内核参数优化
vi /etc/sysctl.conf
fs.file-max=65535
net.ipv4.ip_local_port_range=1025 65000
net.ipv4.tcp_max_orphans = 32768
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_max_tw_buckets=8000
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_retries2=5
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_sack=1
net.ipv4.tcp_fack=1
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_keepalive_time=120
net.ipv4.tcp_keepalive_intvl=20
net.ipv4.tcp_keepalive_probes=3
net.ipv4.tcp_max_syn_backlog= 65535
net.ipv4.tcp_mem = 262144 524288 786432
net.ipv4.tcp_wmem = 4096 131072 16777216
net.ipv4.tcp_rmem = 4096 131072 16777216
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.core.wmem_max = 16777216
net.core.wmem_default = 131072
net.core.rmem_max = 16777216
net.core.rmem_default = 131072
net.netfilter.nf_conntrack_max=65536
net.netfilter.nf_conntrack_tcp_timeout_established=3600
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.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
vm.overcommit_memory = 0
vm.swappiness = 10
net.ipv4.ip_forward = 1
fs.file-max
:该参数指定了系统全局可以打开的文件描述符的最大数量
net.ipv4.ip_local_port_range
:定义了系统使用的本地端口范围,用于传出的 IPv4 连接
net.ipv4.tcp_max_orphans
:指定了系统同时保持在内存中的 TCP 连接的最大数量
net.ipv4.tcp_window_scaling
:启用 TCP 窗口扩大选项,可以优化网络传输的效率
net.ipv4.tcp_max_tw_buckets
:指定了系统同时维持的最大 TIME-WAIT 状态的 TCP 连接数量
net.ipv4.tcp_tw_reuse
:允许重新使用 TIME-WAIT 状态的 TCP 连接
net.ipv4.tcp_tw_recycle
:启用 TIME-WAIT 快速回收机制,可以加速回收处于 TIME-WAIT 状态的 TCP 连接
net.ipv4.tcp_fin_timeout
:指定了 TCP 连接处于 FIN-WAIT-2 状态的超时时间,单位为秒,默认60s
net.ipv4.tcp_retries2
:指定了 TCP 连接在处于 TIME-WAIT 状态时重试的次数
net.ipv4.tcp_syn_retries
:指定了 TCP SYN 请求的重试次数
net.ipv4.tcp_synack_retries
:指定了 TCP SYN-ACK 的重试次数
net.ipv4.tcp_syncookies
:启用 SYN Cookie 机制,用于防止 SYN Flood 攻击
net.ipv4.tcp_sack
:启用 TCP SACK(Selective Acknowledgment)选项,提高网络传输效率
net.ipv4.tcp_fack
:启用 TCP FACK(Forward Acknowledgment)选项,提高网络传输效率
net.ipv4.tcp_timestamps
:启用 TCP 时间戳选项,用于解决延迟重传问题
net.ipv4.tcp_keepalive_time
:表示在连接建立之后经过多少时间开始探测客户端是否正常,单位为秒
net.ipv4.tcp_keepalive_intvl
:指定了 TCP Keepalive 探测的时间间隔,单位为秒
net.ipv4.tcp_keepalive_probes
:指定了 TCP Keepalive 探测的次数
net.ipv4.tcp_max_syn_backlog
:指定了 SYN 队列的最大长度,用于处理传入连接请求
net.ipv4.tcp_mem
:指定了 TCP 内存使用的三个参数,分别为最小、默认和最大内存使用量
net.ipv4.tcp_wmem
:指定了 TCP 发送缓冲区大小的三个参数,分别为最小、默认和最大缓冲区大小
net.core.somaxconn
:指定了监听队列的最大长度,即允许等待连接的最大数量
net.core.netdev_max_backlog
:指定了网络设备队列的最大长度,用于处理传入和传出的网络数据包
net.core.wmem_max
:指定了发送缓冲区的最大大小
net.core.wmem_default
:指定了发送缓冲区的默认大小
net.core.rmem_max
:指定了接收缓冲区的最大大小
net.core.rmem_default
:指定了接收缓冲区的默认大小
net.netfilter.nf_conntrack_max
:指定了同时跟踪的最大连接数
net.netfilter.nf_conntrack_tcp_timeout_established
:指定了已建立的 TCP 连接的超时时间,单位为秒
net.netfilter.nf_conntrack_tcp_timeout_time_wait
:指定了 TIME-WAIT 状态的 TCP 连接的超时时间,单位为秒
net.netfilter.nf_conntrack_tcp_timeout_close_wait
:指定了 CLOSE-WAIT 状态的 TCP 连接的超时时间,单位为秒
net.netfilter.nf_conntrack_tcp_timeout_fin_wait
:指定了 FIN-WAIT 状态的 TCP 连接的超时时间,单位为秒
net.ipv6.conf.all.disable_ipv6
和 net.ipv6.conf.default.disable_ipv6
:禁用 IPv6 功能
vm.overcommit_memory
:禁用内存过量提交机制,确保系统不会过度分配内存
vm.swappiness
:调整内存交换(Swap)的倾向性,值越小,系统倾向于更少地使用交换空间
优化脚本
vi linux.sh
#!/bin/bash
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
#关闭dns反向解析
sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
#调整最大进程数限制和文件描述符限制
cat >> /etc/security/limits.conf << EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOF
#用户进程限制
sed -i 's/4096/8192/g' /etc/security/limits.d/20-nproc.conf
#内核参数优化
cat >> /etc/sysctl.conf << EOF
fs.file-max=65535
net.ipv4.ip_local_port_range=1025 65000
net.ipv4.tcp_max_orphans = 32768
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_max_tw_buckets=8000
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_retries2=5
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_sack=1
net.ipv4.tcp_fack=1
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_keepalive_time=120
net.ipv4.tcp_keepalive_intvl=20
net.ipv4.tcp_keepalive_probes=3
net.ipv4.tcp_max_syn_backlog= 65535
net.ipv4.tcp_mem = 262144 524288 786432
net.ipv4.tcp_wmem = 4096 131072 16777216
net.ipv4.tcp_rmem = 4096 131072 16777216
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.core.wmem_max = 16777216
net.core.wmem_default = 131072
net.core.rmem_max = 16777216
net.core.rmem_default = 131072
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
vm.overcommit_memory = 0
vm.swappiness = 10
net.ipv4.ip_forward = 1
EOF
#使配置生效
sysctl -p
cat > 文件名 << EOF 与 cat >> 文件名 << EOF区别文章来源:https://www.toymoban.com/news/detail-552909.html
一个是创建,一个是在文件末尾追加内容文章来源地址https://www.toymoban.com/news/detail-552909.html
到了这里,关于centos内核优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!