一条报警信息的快速处理和分析

简介: 下午的时候收到这么一条报警。 ZABBIX-监控系统: ------------------------------------报警内容: Too many parallel sessions on xxxxx_xx机房_xxxxx ------------...
下午的时候收到这么一条报警。

ZABBIX-监控系统:
------------------------------------
报警内容: Too many parallel sessions on xxxxx_xx机房_xxxxx
------------------------------------
报警级别: PROBLEM
------------------------------------
监控项目: parallel_session_cnt66
------------------------------------
报警时间:2016.08.22-17:27:54
这个报警的意思是并行会话数达到了66个。已经远超出了阈值。

在几分钟后我又收到了恢复的邮件,可见问题自动修复了。那这个问题该怎么解释呢。
如果通过AWR来定位很可能捕捉不到这个抖动,而且把AWR快照的收集频度降低本身也不能完全解决问题,所以这个时候就需要借助ASH了。
对于ASH生成报告而言,我对于里面需要设置的时间格式深恶痛绝,所以在很早之前就做了简单定制,手工输入两个时间戳,还可以灵活调整范围,很快就定位到了一条语句。
可以看到在时间范围内的SQL基本都是从Orabbix端触发的,而这里有一条语句引起了我的注意。

其它的语句都是查询数据字典的信息,而蓝色部分标示的这条语句一看就是应用层面的。查看执行计划,马上就明白了原委。

这条语句做了全表扫描,因为数据量巨大,所以执行效率低下,而且同时启用了并行,所以相对来看执行效率还可以,但是由此可见系统层面的资源消耗会非常大。
所以问题又来了,为什么全表扫描,启用了并行,怎么会有66个并行会话。看这个语句似乎也没有什么Hint的痕迹。
那么这个问题的原因就更加容易定位了。
SQL> select degree,table_name from dba_tables where table_name='TEST_VIP_NEW' and owner='TEST’;
DEGREE               TABLE_NAME
-------------------- ------------------------------
        32           TEST_VIP_NEW
可以通过这个配置看出并行度为32,所以问题的原因就马上可以定位出来了。
现在的问题是这个语句存在性能问题,一方面会导致大量的资源耗费,二来执行时间也相对比较长,为什么这个大的表执行效率会如此差呢,问题的方向应该在于索引,排除了其它的因素,发现这个表的数据千万级,存在几个索引,但是唯独这个语句where条件中的字段不存在相关的索引,而这个问题可以进一步分析和查看,其实就是根据rank=0,grade=0来得到结果集,从执行计划可以看出这个结果集非常大,其实就算是得到了对应CN列值,本身处理起来也是一个很庞大的工程。所以这个语句从应用层面来看也是存在问题。而另外一个就是并行度,这个表的并行度有些太高,可以适当做一个调整,同时结合起来和开发同学做进一步的确认。我想这个问题在监控体系之内应该是不会报警了。
目录
相关文章
|
分布式计算 监控 Java
日志分析实战之清洗日志小实例4:统计网站相关信息
日志分析实战之清洗日志小实例4:统计网站相关信息
135 0
日志分析实战之清洗日志小实例4:统计网站相关信息
|
JavaScript 前端开发 应用服务中间件
网络流量日志埋点收集—确定收集信息和途径|学习笔记
快速学习网络流量日志埋点收集—确定收集信息和途径
115 0
网络流量日志埋点收集—确定收集信息和途径|学习笔记
|
Web App开发 Linux 开发工具
阿里云实现自动健康信息上报
阿里云实现自动健康信息上报
|
监控 NoSQL 数据库
监控与报警|学习笔记
快速学习监控与报警
78 0
监控与报警|学习笔记
|
SQL 存储 监控
一分钟完成访问数据的智能巡检告警
简介: 本篇文章主要介绍针对访问日志类型的数据如何使用SLS的智能巡检服务,通过简单的业务梳理和SQL的使用,就可以实现智能化的指标巡检。通过简单的告警配置,就可以让丰富的告警信息整体推送到您的钉钉机器人中,交互式的打标让您的巡检结果更满足您的业务场景。
|
Java
报警系统QuickAlarm之报警规则解析
前面两篇分别说了报警执行器和报警规则的定义及用户扩展加载,接下来就是比较核心的一块了,如何将报警规则和报警执行器关联起来,即当发生报警时,应该call哪一个报警执行器
345 0
|
SQL 运维 监控
监控异常操作频率并报警
当企业上云后,监控云资源的异常操作就是一件非常重要的事情。如何监控这些异常操作呢?答案就是操作审计。接下来就以一些实际场景为例,介绍如何基于操作审计,监控云上异常操作或操作频率,进行报警。
监控异常操作频率并报警
|
存储 监控 网络安全
Agentless监控实践中的预警指标采集
本文介绍的监控解决方案由高性能时序数据库InfluxDB、时序分析监控工具Grafana及Agentless自动化工具Ansible构成
|
监控
日志服务数据加工: 任务状态监控与告警
日志服务数据加工最佳实践: 任务状态监控与告警, 介绍如何监控数据加工的任务状态, 并配置相应的监控.
2161 0
|
监控 应用服务中间件