我们承接这样的故障调查
- 极少发生的通信中断
- 只在长时间运行后才发生的崩溃
- 重现率很低的设备联动问题
- 内存泄漏、句柄泄漏、线程数增加
- 因日志不足而无法追查原因的问题
对于平时正常、只是偶尔发生故障的这类问题,排查方法本身就至关重要。
调查的推进方式
- 首先区分应用程序内部因素与通信、设备、操作系统因素。
- 然后增加日志、指标、数据包、句柄数、异常路径等可观测的信息。
- 在此基础上压缩重现条件,梳理原因与防止复发的措施。
擅长处理的主题
- TCP / 套接字通信的中断或延迟
- 与工业相机、外围设备的通信异常
- 包含 COM / ActiveX 的既有软件变得不稳定
- 只在长时间运行时才发生的泄漏或资源耗尽
- 因缺少异常路径测试或日志设计而难以调查
在这样的情况下能派上用场
- 还不清楚原因在应用程序端还是通信端
- 重现需要几小时到几周
- 虽然有日志,但因果关系连不起来
- 在改造之前,想先梳理应该观测什么
直到防止复发为止的支持
故障调查并不是找到原因就结束,重要的是建立起下次能更快追查的状态。
因此,我们会视需要一并推进下面这些整备工作。
- 重新审视日志项目
- 以 session / operation 为单位附加上下文
- 搭建异常路径测试基础设施
- 整理成能够追踪资源生命周期的形式