大蟒蛇肚子的"风暴"
遇到了数据库连接数不足的问题,一般情况下会预留一些会话增加的情况,但在一些特殊情况下如连接风暴(logon storm), 如果在监听中没有做rate限流,对数据库来说巨大的冲击可能会导致数据库Hang 或 ora-20 或ora-18 错误。 对于Hang并伴有进程数不足的情况,AWR、ASH 都可能无法升成,甚至数据库都无法登录或做SSD 都不成功, 这时候LISTENER.LOG 就成了关键的“破案”线索。"05-AUG-2016 12:02:12 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=bomcdb)(CID=(PROGRAM=perl)(HOST=NMC-PREDEAL1)(USER=nmcuser))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.16.2.18)(PORT=57862)) * establish * bomcdb * 0"
数据条目:
05-AUG-2016 13:25:06 * ping * 0
在数据处理时,特意把包含以下字符service_update、ping、status的数据过滤掉,进行统计。
if str.__contains__("service_update") or str.__contains__("ping") or str.__contains__("status") == 1:
当获取到的数据都是有效后,我们要对数据进行拆分,继续获取我们想获取的数据,由于只做统计,那么只要日期即可:
x = str.split('*')[0]
发现数据结尾包含一个空间,将空格进行去除
temp = x.strip()
监听日志的数据拆分完毕,把这些数据存放至一个数组 lsn_data中(这里可能大家有点疑惑,为啥不建二维数组呢?python不存在多维数组)。
因为监听日志有一个很特别的地方,数据本来就是有序的,无需排序,只需去重,把数据放到数据lsn_time中,在处理过程中,可以统计时间的个数并放到数组lsn_count中
# 去重
for l_time in lsn_data:
if l_time not in lsn_time:
lsn_time.append(l_time)
lsn_count.append(lsn_data.count(l_time))
数据已经有了,我们只要把数据画图,即可出现上述的图表。
可以把这些数据用图展示,也可以用表展示。这里用图进行展示
s = Series(lsn_count,index=lsn_time)
s1 = Series(16,index=lsn_time)
plt.ylim(0,80)
s.plot()
s1.plot(color='red', linestyle='--')
plt.show()
用series()函数进行画图,lsn_count为纵坐标,index作为横坐标。在这里我加了1条红色的先s1,用虚线展示。在2013年,广东ngboss上线之初,某库经常出现tnsping缓慢问题。后来经美国实验室测试,每秒的连接数达到16个监听连接就会缓慢。若生成的图表长时间超过红色虚线,那就应该对应用进行拆分整理,避免监听风暴的产生。
大蟒蛇肚子的"风暴"的更多相关文章
- [转]大数据时代,python竟是最好的语言?
随着大数据疯狂的浪潮,新生代的工具Python得到了前所未有的爆发.简洁.开源是这款工具吸引了众多粉丝的原因.目前Python最热的领域,非数据分析和挖掘莫属了.从以Pandas为代表的数据分析领 ...
- 大数据时代,Python是最好的语言!
随着大数据疯狂的浪潮,新生代的工具Python得到了前所未有的爆发.简洁.开源是这款工具吸引了众多粉丝的原因.目前Python最热的领域,非数据分析和挖掘莫属了.从以Pandas为代表的数据分析领域开 ...
- 大数据萌新的Python学习之路(一)
笔记开始简介 从2018年9月份正式进入大学的时代,大数据和人工智能的崛起让我选择了计算机专业学习数据科学与大数据技术专业,接触的第一门语言就是C语言,后来因为同学推荐的原因进入了学校的人工智能研究协 ...
- A 最熟悉的陌生人 (纪念当年就读的梅州市江南高级中学)
最熟悉的陌生人 作者:张慧桥 “枪与玫瑰” 就象瘟98有时会死机天有时会下雨枪有时会走火美国战机有时会掉下来那样,我上网聊天也只是个偶然. 都是栀子那死丫头惹的祸.让每天都觉得是情人节的我那天我自己都 ...
- Python对象的空间边界:独善其身与开放包容
导读:Python猫是一只喵星来客,它爱地球的一切,特别爱优雅而无所不能的 Python.我是它的人类朋友豌豆花下猫,被授权润色与发表它的文章.如果你是第一次看到这个系列文章,那我强烈建议,请先看看它 ...
- bing的简单英文字典工具
今天看到园友心白水撰写的<简单翻译工具--必应字典第三方API使用方法>,感觉很不错,所以用Python也写了一个.源码如下: import urllib.request import j ...
- Python【第一章】:简介和入门
ython简介 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承.之 ...
- [Python] 学习资料汇总
Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...
- 进击的Python【第一章】:Python背景初探与Python基础(一)
Python背景初探 一.Python起源 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做 ...
随机推荐
- MySQL库改名、表改名
数据库中的库或表在开发环境下可能需要改名,关于MySQL的改名步骤如下: 1.备份数据库,备份后就可以安心的去改名了,如果操作错误还可以及时恢复 mysqldump -R -uroot -p 数据库名 ...
- java动态线程池LinkedBlockingQueue和SynchronousQueue比较
import java.util.concurrent.Callable; public class MyCallable implements Callable<String> { pr ...
- 1160: sundari && Shortest path HDU - 4479
http://gdutcode.sinaapp.com/problem.php?id=1160 http://acm.hdu.edu.cn/showproblem.php?pid=4479 35 51 ...
- jquery选择器大全参考
在Dom 编程中我们只能使用有限的函数根据id 或者TagName 获取Dom 对象. 然而在jQuery 中则完全不同,jQuery 提供了异常强大的选择器用来帮助我们获取页面上的对象, 并且将对象 ...
- Google,真的要离我们而去吗?
Google,真的要离我们而去吗? 好怀念,真正要解决问题,还得搜google!
- CF1152C Neko does Maths
思路: 假设a <= b,lcm(a + k, b + k) = (a + k) * (b + k) / gcd(a + k, b + k) = (a + k) * (b + k) / gcd( ...
- 美团Java面试154道题
Java集合22题 ArrayList 和 Vector 的区别.ArrayList与Vector区别 说说 ArrayList,Vector, LinkedList 的存储性能和特性.ArrayLi ...
- 一位学长的学习建议(java方向)
1.前台总得有个拿的出手的页面能力吧,ajax,jquery不说精通但是至少能看懂,能根据业务需求来改吧. 2.数据库方面至少得玩过mysql,DB2,Oracle中的两个以上吧.hibernate或 ...
- mybatis-关联关系
在实现实列中我们在学生表里面增加了一个地址表用于与学生表的一对一 1.创建地址实体类: package com.java1234.mappers; import com.java1234.model. ...
- 那些年,被我蠢哭了的php代码小错误~~~
首先,我爱敲代码!!!而且我很喜欢修改bug,在看到那些bug的时候,我是兴奋的,毕竟当你解决这个bug之后感觉是很爽的. 在学习的过程中,看到无数的bug,有一些错误是很微小的,一般在PHP中都能通 ...