CentOS6生产环境部署后的系统优化指南

CentOS6生产环境部署后的系统优化指南

CentOS6作为长期服务版本,在金融、电信等关键行业仍有一定存量部署。然而其默认配置多针对通用场景,生产环境需根据业务特性进行深度调优。本文将从内核参数、服务管理、安全加固及监控体系四个维度展开优化实践。

一、内核参数优化

生产环境需根据业务负载类型调整内核参数,以提升网络吞吐与并发能力。

1.1 网络参数调优

  1. # 修改/etc/sysctl.conf,增加以下配置
  2. net.core.somaxconn = 65535 # 连接队列最大值
  3. net.ipv4.tcp_max_syn_backlog = 32768 # SYN队列长度
  4. net.ipv4.tcp_tw_reuse = 1 # 快速回收TIME_WAIT连接
  5. net.ipv4.tcp_tw_recycle = 1 # 加速TIME_WAIT状态回收(需注意NAT环境兼容性)
  6. net.ipv4.tcp_fin_timeout = 15 # FIN_WAIT2状态超时时间

应用场景:高并发Web服务需重点调整somaxconntcp_max_syn_backlog,避免连接建立阶段丢包。

1.2 文件系统优化

  1. # 针对ext4文件系统
  2. echo "deadline" > /sys/block/sdX/queue/scheduler # 调整I/O调度器
  3. # 修改/etc/fstab添加noatime选项
  4. /dev/mapper/VolGroup-lv_root / ext4 defaults,noatime 1 1

数据说明deadline调度器可降低I/O延迟,noatime选项能减少30%以上的元数据操作。

1.3 内存管理优化

  1. # 调整虚拟内存参数
  2. vm.swappiness = 10 # 降低swap使用倾向
  3. vm.dirty_background_ratio = 5 # 异步写触发比例
  4. vm.dirty_ratio = 10 # 同步写触发比例

生产建议:数据库类应用建议swappiness设为0,完全禁用swap交换。

二、服务精简与启动管理

生产环境需遵循最小化原则,仅保留必要服务。

2.1 服务依赖分析

  1. # 使用chkconfig查看服务状态
  2. chkconfig --list | grep 3:on
  3. # 推荐保留服务列表
  4. core services: sshd, crond, rsyslog, network

风险控制:禁用postfix前需确保有替代邮件通知方案,避免影响告警系统。

2.2 启动项优化

  1. # 修改/etc/inittab将默认运行级别设为3(多用户模式)
  2. id:3:initdefault:
  3. # 使用ntsysv工具可视化管理服务
  4. ntsysv --level 3

性能收益:精简服务可使系统启动时间缩短40%以上,内存占用降低15%-20%。

三、安全加固方案

生产环境需构建多层防御体系,防范潜在攻击。

3.1 防火墙规则

  1. # 使用iptables配置基础规则
  2. iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
  3. iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
  4. # 保存规则
  5. service iptables save

防护逻辑:限制SSH端口每分钟最多3次新连接,有效阻断暴力破解。

3.2 密码策略强化

  1. # 修改/etc/login.defs
  2. PASS_MAX_DAYS 90
  3. PASS_MIN_DAYS 7
  4. PASS_WARN_AGE 7
  5. # 配置密码复杂度
  6. echo "password requisite pam_cracklib.so try_first_pass retry=3 minlen=12 lcredit=-1 ucredit=-1 dcredit=-1" >> /etc/pam.d/system-auth

合规要求:密码需包含大小写字母、数字及特殊字符,最短有效期7天。

3.3 审计日志配置

  1. # 启用核心系统审计
  2. auditctl -a exit,always -F arch=b64 -S adjtimex -S settimeofday -k time-change
  3. # 日志轮转配置
  4. /etc/logrotate.d/audit:
  5. /var/log/audit/audit.log {
  6. daily
  7. rotate 7
  8. compress
  9. missingok
  10. notifempty
  11. create 0600 root root
  12. }

溯源能力:时间修改操作将被完整记录,满足等保2.0三级要求。

四、监控体系构建

建立多维监控是保障系统稳定的关键。

4.1 基础资源监控

  1. # 安装sysstat工具包
  2. yum install sysstat -y
  3. # 配置数据采集频率
  4. echo "OPTIONS=\"-d\"" > /etc/sysconfig/sysstat
  5. # 创建自定义监控脚本
  6. #!/bin/bash
  7. echo "$(date) CPU_LOAD:$(uptime | awk -F'load average:' '{print $2}')" >> /var/log/system_metrics.log

可视化方案:可将日志数据导入ELK或Prometheus进行趋势分析。

4.2 进程级监控

  1. # 使用monit监控关键进程
  2. echo "
  3. check process nginx with pidfile /var/run/nginx.pid
  4. start program = "/etc/init.d/nginx start"
  5. stop program = "/etc/init.d/nginx stop"
  6. if failed host 127.0.0.1 port 80 protocol http then restart
  7. if 3 restarts within 5 cycles then timeout
  8. " >> /etc/monit.d/nginx

告警策略:连续3次重启失败触发邮件告警,5分钟后自动执行服务降级。

4.3 性能基准测试

  1. # 使用stress进行压力测试
  2. yum install stress -y
  3. stress --cpu 4 --io 4 --vm 2 --vm-bytes 1G --timeout 60s
  4. # 监控工具组合
  5. top -b -n 1 > system_load.log
  6. vmstat 1 10 > vm_stats.log
  7. iostat -x 1 10 > io_stats.log

测试规范:建议在非业务高峰期进行,每次测试间隔需大于15分钟。

五、升级过渡建议

对于仍在使用CentOS6的生产系统,建议:

  1. 迁移评估:使用yum list installed导出包列表,评估向CentOS7/8迁移的兼容性
  2. 容器化改造:将关键应用容器化,降低底层系统依赖
  3. 混合部署:在主流云服务商环境搭建新版本集群,逐步迁移业务流量

结语:CentOS6的优化需兼顾稳定性与安全性,建议每季度进行一次全面健康检查。对于关键业务系统,建议逐步向更新的操作系统版本迁移,同时利用容器技术实现应用与基础设施的解耦。实际优化过程中,应建立完善的变更管理流程,每次调整前做好配置备份,并通过灰度发布验证优化效果。