想到可能是系统资源问题,于是从 CPU、内存、磁盘、网络四个层面进行排查。
CPU占用的话一直都很低,服务器也一直还有大量的可用内存,通过监控图表发现,磁盘的 IO
在这段时间异常的高,比正常时间高出大约20倍。故此怀疑磁盘的故障,因为这个服务器做了
RAID,怀疑是否磁盘损坏在进行数据转移,通过系统日志发现一切都正常。再查看应用服务器下的临时文件,发现存在很多较大的历史文件,故此怀疑系统在启
动时读取这些文件所致。通过将这些文件转移到别处的做法,确认是此原因引发。后来再深层次的寻找原因,发现这些使用 SQLite
记录的日志文件,在单个 40多万条记录,60M左右的时候,进行 vacuum 操作时,将导致整个系统 IO 写入出现瓶颈。
在系统出现故障时,通过对比法进行排查。此例中,发现当前版本与之前版本都存在问题,那么基本排除了应用服务器版本更新的 bug,在服务器环境相关问题中,出现性能不佳等情况,基本从 CPU、内存、磁盘、网络这几个方面入手去寻找异常.