系统故障排查与性能优化指南
1. 变更管理与问题隔离
在系统出现问题时,若能明确指出问题发生前后的单一变更,那么隔离问题会相对容易;但如果同时有多个代码片段和配置文件被更改,问题的根源就很难确定。有些团队会利用维护窗口一次性处理大量不相关的事务,然而一旦在这个期间出现问题,就很难找出根本原因。
拥有一个能跟踪变更的系统固然不错,但更理想的是有一个可以回滚导致问题的变更的系统。若能将系统回滚到问题出现之前的状态,而问题依旧存在,那么就可以排除一个主要的假设,进而进行其他测试。即便具备回滚变更的能力,也应尽量一次只做一项更改。回滚大量变更或许能解决问题,但仍需逐一排查每个变更来找出问题根源。
不过,变更并非总是问题的根源。在故障排查过程中,“有什么变更了?”这个问题有时会误导我们。所以,对于变更导致问题的假设,一定要进行测试,不要一出现问题就急于回滚所有变更。
2. 理解系统工作原理
在系统管理工作中,当出现问题时,人们往往会将责任归咎于自己最不了解的技术。例如,曾经在网络出现问题时,DNS 常常成为替罪羊,即便 DNS 服务器一直很稳定。实际上,那些指责 DNS 的人往往是对其了解最少的人。后来通过举办关于 DNS 工作原理的培训课程,参加课程的人就不再将网络问题归咎于 DNS 了。
作为故障排查人员,也容易受到这种本能的影响。所以,要想更有效地解决问题,就需要深入了解所排查系统的工作原理。以解决 Linux 问题为例,需要掌握 TCP/IP、DNS、Linux 进程、编程和内存管理等方面的知识。对系统工作原理了解得越多,解决问题的速度就越快,也能更信任自己对问题的直觉判断,还能避免做无用功,无需进行大量测试就能排除某
超级会员免费看
订阅专栏 解锁全文
1132

被折叠的 条评论
为什么被折叠?



