本文来源于阿里云-云栖社区,原文点击这里。
目前就职云和恩墨,南区交付工程师,有超过8年超大型数据库管理经验,擅长Oracle数据库性能优化与升级迁移。
某省税务核心业务系统在7月13日11-12点出现业务处理非常缓慢,偶尔出现卡住不动。某业务功能处理时间是平时的10倍以上。
已知情况:
- 近两周开始,在白天业务高峰期业务系统会出现处理缓慢
- 数据库层面出现大量latch:cache buffers chains等待会话
- 每次问题大概持续了30分钟后,latch:cache buffers chains等待消失,业务恢复正常
- 缓慢期间系统CPU使用率达到80%
了解了以上信息后,我们首先获取了故障期间1节点的awr信息,一小时的dbtime高达58,354 min。我们知道dbtime是数据库实例会话花费时间的总和,那么从dbtime上看,期间数据库确实出现问题,会话发生了严重的等待。
Top等待事件中看到latch: cache buffers chains等待事件排列第1,占据了dbtime 82%,等待次数1千万以上,其平均等待时间达到238ms。其余等待事件占比很少。可以推断cache buffers chains事件跟本次故障有极强的相关性。因此我们接下来从该等待事件着手进行分析。