Linux服务器长期稳定运行需精简服务、合理配置内存与swap、启用日志轮转与监控、按需调优内核参数。禁用bluetooth等无用服务,swappiness设为1或10依场景而定,logrotate限制日志大小与份数,用netdata监控关键指标,内核参数须实测验证而非套模板。

Linux服务器要长期稳定运行,核心在于减少非必要干扰、控制资源波动、提前识别风险,而不是等出问题再救火。
精简启动服务,关闭无用进程
开机自启的服务越多,系统负载越不可控,也越容易因某个服务异常拖垮整体。用 systemctl list-unit-files --type=service 查看所有服务状态,重点关注 enabled 但实际业务并不需要的项,比如 bluetooth、avahi-daemon、rpcbind(NFS不用时)、cups 等。
- 禁用无用服务:sudo systemctl disable servicename
- 停止正在运行的:sudo systemctl stop servicename
- 检查残留进程:ps aux | grep servicename,确认未被其他程序拉起
合理配置内存与交换机制
内存不足直接导致 OOM Killer 杀进程,是服务中断的常见原因。不要简单“关 swap”,而应根据负载特性调整:
- 物理内存充足(≥16GB)且运行关键服务(如数据库):可设 vm.swappiness=1,尽量避免换出活跃页
- 内存有限或负载波动大:保留 swap 分区(建议大小为内存的 0.5–1 倍),并设 vm.swappiness=10,兼顾响应与容错
- 永久生效:写入 /etc/sysctl.conf,执行 sudo sysctl -p
启用日志轮转与关键指标监控
日志暴涨会占满根分区,CPU/内存突增若无人告警,往往发现时已宕机。基础防护不能只靠经验判断。
- 确保 logrotate 已启用,检查 /etc/logrotate.d/ 下各服务配置,限制单个日志最大尺寸(如 size 100M)和保留份数(如 rotate 4)
- 部署轻量监控:用 netdata(内存占用低、自带 Web 界面)或 prometheus + node_exporter,至少盯住 CPU load、内存使用率、磁盘 I/O 等待、根分区剩余空间
- 设置阈值告警:例如根分区 >90%、15 分钟 load > CPU 核数 × 2,通过邮件或企业微信推送
内核参数调优需按需而非套模板
网上流传的“万能优化参数”常引发副作用,比如盲目调大 net.core.somaxconn 可能加剧连接队列堆积,过度降低 tcp_fin_timeout 反而影响 NAT 环境下的连接复用。
- 先确认瓶颈:用 ss -s 看连接统计,dmesg -T | tail 查内核报错,iostat -x 1 观察磁盘延迟
- 针对性调整:Web 服务器并发高 → 调大 net.core.somaxconn 和 net.ipv4.ip_local_port_range;长连接多 → 适当延长 net.ipv4.tcp_keepalive_time
- 每次只改 1–2 项,改完观察 24 小时,记录前后对比(如 ab 或真实流量下的错误率、延迟)
稳定不是一劳永逸的状态,而是持续验证配置、收敛异常行为、缩小不确定性的过程。不复杂但容易忽略。










