CentOS Minimal系统资源优化技巧
小樊
34
2026-01-07 21:32:43
CentOS Minimal 系统资源优化技巧
一 基础精简与系统更新
- 保持最小化安装,仅安装必需软件包,减少内核与用户态常驻内存占用。
- 及时更新系统与软件包,修复漏洞并获得性能修复:执行yum update -y(或 dnf update -y)。
- 精简开机自启:用 systemctl list-unit-files --type=service 查看,按需在安装后仅保留如 sshd、rsyslog/crond、NetworkManager/firewalld 等必要服务,其余用 systemctl disable --now 服务名 关闭。
- 可选:关闭图形相关组件与不必要的控制台以节省内存(见下文“控制台与登录优化”)。
二 存储与文件系统优化
- 为关键分区添加 noatime,nodiratime 挂载选项,降低元数据写入次数:在 /etc/fstab 中如
/dev/sda1 / ext4 defaults,noatime,nodiratime 0 0,随后执行 mount -o remount / 或 mount -a 生效。
- 选择更契合负载的文件系统:通用场景可选 XFS;高并发小文件/元数据密集可考虑 Btrfs(需评估特性与运维复杂度)。
- 结合工作负载选择 I/O 调度器(如 deadline/noop/cfq),并在虚拟化/云盘场景优先使用 noop;必要时结合 LVM Cache/Bcache 做读缓存加速。
三 内核网络与连接优化
- 编辑 /etc/sysctl.conf 并
sysctl -p 生效,示例参数(按业务与并发量微调):
- 端口与连接复用
- net.ipv4.tcp_tw_reuse = 1
- net.ipv4.tcp_tw_recycle = 0(在 NAT/负载均衡 环境下建议关闭,避免连接异常)
- net.ipv4.tcp_fin_timeout = 30
- net.ipv4.tcp_keepalive_time = 1200
- net.ipv4.ip_local_port_range = 1024 65535
- 队列与连接积压
- net.core.somaxconn = 1024(或 4096/更高视应用而定)
- net.core.netdev_max_backlog = 2000–5000
- net.ipv4.tcp_max_syn_backlog = 2048–8192
- 安全与异常控制
- net.ipv4.tcp_syncookies = 1
- net.ipv4.tcp_max_orphans = 32768
- 注意:不同内核版本对 tcp_tw_recycle 等选项的支持与行为不同,线上环境建议优先使用 tcp_tw_reuse 并配合合理的 keepalive/fin_timeout,避免盲目开启回收。
四 登录、安全与资源释放
- 控制台与登录优化
- 减少虚拟控制台数量(如仅保留 tty1–tty2),降低常驻 getty 内存;在 CentOS 7/8 可通过修改 /etc/systemd/logind.conf 的 NAutoVTs=2 并重启 logind 或系统生效。
- 禁用 Ctrl+Alt+Del 组合键的硬重启(生产更安全):systemctl mask ctrl-alt-del.target。
- 安全基线(在安全与资源之间平衡)
- 不建议直接关闭 SELinux;如确需关闭,编辑 /etc/selinux/config 将 SELINUX=enforcing 改为 disabled 并重启;临时切换可用 setenforce 0/1(测试环境慎用)。
- 使用 firewalld 精细化放行端口(如仅开放 22/80/443):firewall-cmd --permanent --add-service=ssh --add-service=http --add-service=https && firewall-cmd --reload。
- SSH 加固:禁用 root 远程登录(/etc/ssh/sshd_config 中 PermitRootLogin no),改用 sudo 管理;按需更改端口并限制登录用户/组。
- 资源释放与守护
- 关闭不需要的后台服务(如 cups 打印服务):systemctl disable --now cups。
- 日志与临时文件:配置 logrotate 按日/大小轮转并压缩;定期清理 /var/log/ 下历史归档与 /tmp。
- 资源限制:在 /etc/security/limits.conf 或 /etc/security/limits.d/*.conf 中设置 nofile/nproc 等上限,避免单进程耗尽句柄或进程数。
五 监控验证与回退
- 基线采集与压测
- 记录优化前后关键指标:free -m、vmstat 1 60、iostat -x 1 60、ss -s、sar -n DEV 1 60、dmesg;对网络/存储进行基线压测(如 iperf3、fio)验证吞吐、IOPS、延迟与连接成功率。
- 变更管控
- 使用 git 或 etckeeper 管理 /etc 变更;重要参数修改前先备份(如 sysctl.conf 与 fstab 的副本),变更后逐项验证并保留回滚方案。
- 风险提示
- 内核参数、I/O 调度器、SELinux 与防火墙策略均可能影响稳定性与可达性;务必在测试环境验证并分阶段上线,确保有控制台/带外可回退手段。