13. 故障排查与性能优化
本章节指导在 RHEL 9(主机名 LinuxDC)上使用 SecureCRT 进行故障排查和性能优化,配合 SecureFX 传输日志文件。内容涵盖故障排查流程(日志分析、系统调用跟踪)、性能监控(sar, iostat, top)和系统优化(swappiness, I/O 调度器、cgroups),以 SSH(端口 2222,参考第 9 章)等案例为例,全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 LinuxDC 环境中测试,确保实验一致性。
13.1 前提条件
- RHEL 9 已安装(参考第 1 章),主机名设置为
LinuxDC。 - 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 9 章)。
- 使用 SecureFX 传输文件(SFTP 协议)。
- 具有 root 或 sudo 权限。
- 系统已订阅并启用 RHEL 和 EPEL 仓库(参考第 2 和第 5 章)。
sshd服务已配置(参考第 9 章)。
💡 提示:故障排查应从日志入手,性能优化需监控基线。在 RHEL 10 中,性能工具如
top支持更多集成指标,如容器资源使用,提升混合环境诊断效率。
13.2 故障排查
13.2.1 日志分析
-
查看服务日志:
journalctl -u sshd --since "1 hour ago" # 查看最近 1 小时 sshd 日志 journalctl -p err -b # 查看当前引导的错误日志 -
系统日志:
tail -f /var/log/messages # 实时查看系统日志 dmesg | grep error # 查看内核错误
🧠 知识点:journalctl 是 systemd 日志工具,支持过滤(如
-u服务、-p优先级)。
13.2.2 系统调用跟踪
-
使用 strace:
strace -p <pid> # 附加到进程跟踪调用 strace ssh user@host # 跟踪 SSH 命令 -
使用 lsof:
lsof -i :2222 # 查看占用 2222 端口进程 lsof /path/to/file # 查看打开文件进程
✅ 检查点:strace 输出显示系统调用,lsof 列出文件/端口使用。
13.3 性能监控
13.3.1 CPU 和内存监控
-
使用 top/htop:
top # 交互式监控(按 1 查看 CPU 核心) htop # 增强版(dnf install -y htop) -
进程排序:
ps aux | sort -nrk 3 | head # 高 CPU 进程 free -h # 内存使用
13.3.2 磁盘 I/O 监控
-
使用 iostat:
iostat -dx 5 # 每 5 秒显示扩展磁盘统计 -
使用 sar:
sar -u 1 5 # CPU 使用(1 秒间隔,5 次) sar -d 1 5 # 磁盘 I/O
💡 提示:安装 sysstat(
dnf install -y sysstat)启用 sar。在 RHEL 10 中,sar 支持更多实时指标,如网络延迟分析。
13.3.3 生成诊断报告
- 使用 sosreport:
sos report --tmp-dir /tmp # 生成系统报告
🧠 知识点:sosreport 收集日志、配置和状态,用于オフライン分析。
13.4 系统优化
13.4.1 调整 swappiness
-
临时调整:
sysctl vm.swappiness=10 # 设置为 10 -
永久调整:
vim /etc/sysctl.d/99-swappiness.conf # 添加: vm.swappiness=10 sysctl --system # 应用
13.4.2 I/O 调度器优化
-
查看调度器:
cat /sys/block/sda/queue/scheduler # 查看当前 -
设置 mq-deadline:
echo mq-deadline > /sys/block/sda/queue/scheduler vim /etc/default/grub # 添加到 GRUB_CMDLINE_LINUX: elevator=mq-deadline grub2-mkconfig -o /boot/grub2/grub.cfg reboot
13.4.3 使用 cgroups
- 创建 cgroup:
mkdir /sys/fs/cgroup/memory/mygroup echo 100M > /sys/fs/cgroup/memory/mygroup/memory.limit_in_bytes echo <pid> > /sys/fs/cgroup/memory/mygroup/tasks # 添加进程
✅ 检查点:
cat /sys/fs/cgroup/memory/mygroup/memory.usage_in_bytes查看使用。🧠 知识点:cgroups v2 在 RHEL 9 默认启用,支持统一层次结构。在 RHEL 10 中,cgroups v2 进一步优化,支持更多动态调整。
13.5 常见问题与排查
🔍 故障排查:
-
问题 1:SSH 连接失败
解决:journalctl -u sshd,检查防火墙(firewall-cmd --list-ports)、SELinux(ausearch -m avc)。 -
问题 2:高负载
解决:top识别进程,strace分析瓶颈。 -
问题 3:性能优化无效
解决:确认tuned-admprofile 或重启服务。
13.6 实践任务
- 使用 SecureCRT 通过 SSH(端口 2222)登录
LinuxDC,模拟 SSH 连接失败并排查(检查日志、防火墙、SELinux)。 - 使用
top和iostat监控 CPU 和磁盘 I/O,记录高负载进程。 - 配置
swappiness为 10 并验证效果。 - 使用
sos report生成系统诊断报告并传输至本地。
✅ 检查点:问题解决,性能指标正常,报告生成。
13.7 自测问题
-
问题 1:如何排查服务失败?
答案:journalctl -u <service>,systemctl status <service> -
问题 2:如何找到高 CPU 进程?
答案:top或ps aux | sort -nrk 3 | head -
问题 3:如何调整
swappiness永久生效?
答案:编辑/etc/sysctl.d/99-swappiness.conf,添加vm.swappiness=10
🧾 总结:
本章完整介绍了 RHEL 9 故障排查与性能优化的流程,包括日志分析、监控工具和优化技术。掌握这些方法可快速诊断问题,提升系统效率,为后续端口管理与数据存储提供优化基础。