码迷,mamicode.com
首页 > 其他好文 > 详细

大蟒蛇肚子的"风暴"

时间:2017-12-10 12:56:16      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:平台   ogr   增加   shel   结果   微软   生成   plt   win   

技术分享图片遇到了数据库连接数不足的问题,一般情况下会预留一些会话增加的情况,但在一些特殊情况下如连接风暴(logon storm), 如果在监听中没有做rate限流,对数据库来说巨大的冲击可能会导致数据库Hang 或 ora-20 或ora-18 错误。 对于Hang并伴有进程数不足的情况,AWR、ASH 都可能无法升成,甚至数据库都无法登录或做SSD 都不成功, 这时候LISTENER.LOG 就成了关键的“破案”线索。
以往往往会用一些shell命令进行分析,如:
$ fgrep "establish" anbob_listener.log |awk ‘{print $1 " " $2}‘ |awk -F: ‘{print $1 ":" $2 ":" $3 }‘ |sort |uniq -c
 
分析时需要用肉眼查看结果,有些时候还会碰到一些状况,监听日志已经拷贝到windows下,还得传输至虚拟机下才能进行分析。
这时候往往就会想有工具可以跨平台,能自动生成图表就更好了。后来认识到了大蟒蛇,发现它这方面的能力非常。
今天,来分享一下怎么用大蟒蛇去对监听日志进行分析,并生成以下图表:
 
 
 
这是一个二维图,需要有x轴和y轴数据,然后在进行组图。
监听日志有些数据时有效的,有些是无效的
有效数据条目:
"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个监听连接就会缓慢。若生成的图表长时间超过红色虚线,那就应该对应用进行拆分整理,避免监听风暴的产生。

大蟒蛇肚子的"风暴"

标签:平台   ogr   增加   shel   结果   微软   生成   plt   win   

原文地址:http://www.cnblogs.com/nolanchan/p/8016346.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!