作为一名系统管理员,在日常运维中经常遇到性能瓶颈和安全风险并存的情况。今天分享几个实际踩坑经验,帮助大家通过内核参数调优来提升系统性能与安全性。
1. TCP连接优化 - 避免连接队列溢出 在高并发场景下,我们曾遇到大量TIME_WAIT连接导致新连接建立失败的问题。通过调整以下参数解决:
# 临时生效
sudo sysctl -w net.core.somaxconn=4096
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=4096
sudo sysctl -w net.ipv4.tcp_fin_timeout=30
# 永久生效,添加到/etc/sysctl.conf
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_fin_timeout = 30
2. 文件描述符优化 - 防止资源耗尽 在处理大量并发文件操作时,发现系统频繁报错too many open files。通过增加文件描述符限制:
# 查看当前限制
ulimit -n
# 临时调整(当前会话生效)
ulimit -n 65536
# 永久配置,修改/etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
3. 内存管理优化 - 防止OOM Killer触发 在运行内存密集型应用时,系统频繁触发OOM Killer导致服务中断。通过调整swappiness参数减少swap使用:
# 临时生效
sudo sysctl -w vm.swappiness=10
# 永久配置
vm.swappiness = 10
这些参数调优需要结合实际业务场景进行测试,建议在非生产环境先行验证。

讨论