DevOps----Linux内核参数调优

引言

        DevOps 是一种结合了软件开发(Dev)和 IT 运维(Ops)的方法论,旨在通过提高团队之间的协作效率、缩短交付周期和提升软件质量来改善软件开发和运维的过程

在Linux中,我们可以对其内核的一些参数进行合理调整,能够优化系统性能、提升稳定性。

配置文件:/etc/sysctl.conf

持久化保存配置:systemctl -p

调整网络相关参数

vim /etc/sysctl.conf

#增加系统可使用的文件描述符数量

fs.file-max = 655350        系统允许的最大文件描述符数量。适用于高并发服务器(如 Web、数据库)

#调整TCP/IP网络参数
net.ipv4.tcp_max_tw_buckets = 6000        启用 TIME_WAIT 连接的快速回收
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_tw_recycle = 1        启用 TIME_WAIT 连接的快速回收(Linux 2.6 + 默认开启)。注意:在 NAT 环境中可能导致连接问题
net.ipv4.tcp_tw_reuse = 1        允许将 TIME_WAIT 状态的 socket 重新用于新连接,提高连接复用率
net.ipv4.tcp_syncookies = 1        防御 SYN Flood 攻击,通过 cookie 机制验证 SYN 请求的合法性
net.ipv4.tcp_max_orphans = 3276800        未关联到用户进程的 TCP socket 最大数量。防止大量半开连接耗尽内存
net.ipv4.tcp_max_syn_backlog = 262144        SYN_RECV 状态连接的最大队列长度。高并发场景下需增大此值以处理更多待确认的连接
net.ipv4.tcp_synack_retries = 1        SYN+ACK 包的重传次数。减少重传可加快连接建立速度,但可能降低可靠性
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 15        FIN_WAIT_2 状态的超时时间(秒)。缩短超时可加速资源释放。
net.ipv4.tcp_keepalive_time = 30        TCP Keep-Alive 探测的初始间隔(秒)。适用于长连接服务(如数据库)
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_mem = 94500000 915000000 927000000        TCP 内存分配的三个阈值(min、pressure、max),单位为页(通常 4KB / 页)
net.ipv4.tcp_rmem = 4096 87380 16777216        TCP 接收缓冲区的最小、默认、最大值(字节)。增大可提高大带宽网络的吞吐量
net.ipv4.tcp_wmem = 4096 65536 16777216        TCP 发送缓冲区的最小、默认、最大值(字节)。增大可提高大带宽网络的吞吐量
net.ipv4.tcp_mtu_probing = 1

# 提高系统UDP和TCP缓冲区大小
net.core.rmem_max = 16777216        系统所有 socket 接收缓冲区的最大尺寸(字节)
net.core.wmem_max = 16777216        系统所有 socket 发送缓冲区的最大尺寸(字节)
net.core.rmem_default = 65536
net.core.wmem_default = 65536
net.core.netdev_max_backlog = 4096        网络设备接收数据包但未被内核处理时的队列长度。高流量场景下需增大此值
net.core.somaxconn = 65535        TCP 监听队列的最大长度。需配合应用程序的listen()参数使用

# 关闭ICMP重定向
net.ipv4.conf.all.accept_redirects = 0        禁止接收v4的 ICMP 重定向报文,防止中间人攻击
net.ipv6.conf.all.accept_redirects = 0        禁止接收v6的 ICMP 重定向报文,防止中间人攻击
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0

调整内存相关参数

#内存管理参数

# 调整内存分配策略
vm.swappiness = 10        控制内存使用到何种程度时开始使用 swap 分区(0-100)。值越低,越优先使用物理内存,适用于数据库服务器
vm.vfs_cache_pressure = 50        控制内核回收 dentry/inode 缓存的倾向(默认 100)。降低此值可保留更多文件系统缓存  
vm.dirty_ratio = 60        系统内存中 “脏页”(未写入磁盘)的最大比例。超过此值时,内核将强制同步到磁盘
vm.dirty_background_ratio = 2
vm.overcommit_memory = 1        内存分配策略,0启发式检查(默认),1允许超量分配,2严格按照物理内存+swap限制分配

文件相关参数

#文件系统参数
# 提高inode数量限制
fs.inotify.max_user_watches = 524288        inotify 机制允许单个用户监视的文件 / 目录数量上限
fs.inotify.max_user_instances = 8192         单个用户创建inotify实例的数量上限

 还可以通过修改/etc/security/limits.conf文件来调整用户资源限制,即设置用户或组的资源限制

*表示除root外的所有用户,因此前四行配置对普通用户生效,后四行专门针对 root 用户

# 增加用户可打开的文件描述符数量

* soft nofile 65535        普通用户的 软限制(当前会话生效)为 65535 个文件描述符

* hard nofile 65535        普通用户的 硬限制(上限值)为 65535 个文件描述符

* soft nproc 65535        普通用户的 软限制 为 65535 个进程

* hard nproc 65535        普通用户的 硬限制 为 65535 个进程

root soft nofile 65535        root 用户也被限制为 65535 个文件描述符

root hard nofile 65535

root soft nproc 65535        root 用户最多可创建 65535 个进程

root hard nproc 65535

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值