服务器系统安装需合理分区(如/≥50GB、/data独立挂载)、LUKS磁盘加密、禁用NetworkManager启用systemd-networkd、调优内核参数(如somaxconn=65535、swappiness=10)及ulimit和JVM等资源限制。

服务器系统安装不是点几下“下一步”就完事,底层架构调优也不是堆参数。真正稳、快、安全的系统,靠的是安装阶段的合理规划 + 启动后的精准干预。下面从实操角度拆解关键动作,不讲理论套话,只列必须做的步骤和容易忽略的细节。
安装阶段:分区与加密必须一步到位
根目录(/)至少留50GB,用XFS或ext4;swap大小按内存×2设定(上限32GB),避免OOM时直接杀进程;/data单独挂载,承接所有业务数据——这是后续扩容、备份、权限隔离的基础。
磁盘加密不能跳过。LUKS加密在安装界面勾选即可,密码要够长且独立于登录密码。一旦硬盘被物理带走,没密钥就是零价值数据。
别信“默认分区够用”。某次部署Redis集群,因/data没单独分出大空间,后期追加挂载导致路径迁移、服务中断两小时。
网络与服务:关掉NetworkManager,启用systemd-networkd
云服务器或物理机跑生产服务,NetworkManager会抢网卡控制权,造成IP漂移、DNS失效等隐蔽故障。执行三行命令:
- systemctl stop NetworkManager
- systemctl disable NetworkManager
- systemctl enable --now systemd-networkd
再配一个静态IP配置文件(如/etc/systemd/network/10-static.network),内容简洁明确:
[Match] Name=eth0 <p>[Network] Address=192.168.1.100/24 Gateway=192.168.1.1 DNS=114.114.114.114
内核参数:按场景设值,不是全抄模板
高并发Web服务重点关注连接队列和内存回收:
- net.core.somaxconn = 65535 —— 防止SYN队列溢出丢包
- vm.swappiness = 10 —— Redis/Nginx类服务必须压低交换倾向
- net.ipv4.tcp_fastopen = 3 —— 减少首包RTT,对API网关效果明显
改完运行 sysctl -p 生效。别忘了验证:sysctl net.core.somaxconn 输出应为65535。
资源限制:ulimit和进程级调度不能只靠默认
/etc/security/limits.conf 至少补这两行:
- * soft nofile 65535
- * hard nofile 65535
重启终端后用 ulimit -n 确认。若跑Java服务,还需在JVM启动参数里加 -XX:+UseG1GC -XX:MaxGCPauseMillis=200,避免GC停顿拖垮响应。
对CPU密集型任务(如FFmpeg转码、模型推理),用 numactl --cpunodebind=0 --membind=0 ./your_app 绑定NUMA节点,可提升15%以上吞吐。

















