Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25175
  • 博文数量: 18
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2015-11-02 14:00
文章分类

全部博文(18)

文章存档

2016年(4)

2015年(14)

我的朋友

分类: Oracle

2016-09-12 11:30:59

客户反映前端系统反映很慢,自己通过sqlplus登录发现时而正常时而卡顿,登录之后有没有明显症状,需要诊断原因。
因为客户反映登录之后并没有异常,所以先不怀疑是db端出现了性能问题,必须先从客户端程序下手,对于诊断登录问
题,需要调查登录阶段时间都花费在了那些调用上, 于是需要可以提供strace 输出:
strace -f -ttt -o sqlplus.trc sqlplus / as sysdba 


收集信息如下:
+ sqlplus.trc


11114 1468996741.620272 execve("/u01/app/oracle/product/11.2.0/bin/sqlplus", ["sqlplus", "system/spring"], [/* 29 vars */]) = 0
...............
11114 1468996741.849734 read(11, 
11115 1468996741.849800 getrusage(RUSAGE_SELF, {ru_utime={0, 8998}, ru_stime={0, 28995}, ...}) = 0
.....too much getrusage here
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11111_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11112_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11113_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11114_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11115_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11116_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11117_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
11115 1468996741.871284 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11118_1.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = -1 EEXIST (File exists)
.....too much open here
11115 1468996743.559319 open("/u01/app/oracle/admin/orcl/adump/orcl_ora_11115_122.aud", O_RDWR|O_CREAT|O_EXCL, 0660) = 8    <<<1.7s
....
11114 1468996743.579234 read(0, "exit\n", 1024) = 5  
11114 1468996747.659642 write(10, "\0\r\0\0\6\0\0\0\0\0\3\t\10", 13   <<<4s elapsed
11115 1468996747.659687 <... read resumed> "\0\r\0\0\6\0\0\0\0\0\3\t\10", 8208) = 13
11114 1468996747.659702 <... write resumed> ) = 13



首先分析第一个trace文件,根据时间戳查找花费时间最多的地方,的确能发现一处时间明显变化地方,就是 read函数
居然花费了4s,非常可疑,经过自己测试发现原来read函数时间就是sqlplus显示登录之后的提示符到最后客户输入exit
命令的时间差,若是是正常情况,剩下并没有发现其他时间戳有明显跳变情况,因为整个trace文件非常大,所以只能一
点点从头阅读,忽然发现trace文件中间有大量的/u01/app/oracle/admin/orcl/adump/orcl_ora_nnn_1.aud出现,一共有
上百个文件,所有文件读完花费了1.7s,问题原因就发生在了这里,这些文件是审计文件可以随时备份删除。于是让客
户理这些文件之后再次登录,明显好转。至此问题解决,至于客户反映时快时慢是因为客户是RAC系统,而另外一个实
例目录下并没有这些文件,所以有时候登录tns形式到第二个实例就没有这个问题。
阅读(620) | 评论(0) | 转发(0) |
0

上一篇:12C RAC安装PSU补丁

下一篇:没有了

给主人留下些什么吧!~~