Linux 调试Oracle数据库性能问题
Oracle数据库运行缓慢,我一直在尝试查找瓶颈。我检查了AWR中的前5个事件,但没有获得一致的等待事件以了解问题 我有时注意到日志文件切换(私有串刷新不完整)等待事件,因此根据Oracle支持,我将“\u in\u memory\u undo”参数更改为FALSE 我仍然看不到任何改进。我还注意到服务器上的CPU负载约为45-50%,但看不出是哪个导致了问题。这是服务器上运行的唯一实例。我一直在通过vmstat、iostat、top、sar命令进行监控,与我们更好的工作环境相比,我看到平均负载很高。而且加载依赖于交换内存 不确定增加RAM是否能解决问题。请建议我如何继续?如果需要任何信息,请告诉我 版本:在CentOS(Linux)x86_64上11.2.0.3.0 这是最上面的命令输出Linux 调试Oracle数据库性能问题,linux,oracle11g,Linux,Oracle11g,Oracle数据库运行缓慢,我一直在尝试查找瓶颈。我检查了AWR中的前5个事件,但没有获得一致的等待事件以了解问题 我有时注意到日志文件切换(私有串刷新不完整)等待事件,因此根据Oracle支持,我将“\u in\u memory\u undo”参数更改为FALSE 我仍然看不到任何改进。我还注意到服务器上的CPU负载约为45-50%,但看不出是哪个导致了问题。这是服务器上运行的唯一实例。我一直在通过vmstat、iostat、top、sar命令进行监控,与我们更好的工作环境相比,我看到平均负载
top - 13:16:03 up 312 days, 3:55, 5 users, load average: 41.31, 41.86, 42.04
Tasks: 333 total, 2 running, 331 sleeping, 0 stopped, 0 zombie
Cpu(s): 25.1%us, 0.2%sy, 0.0%ni, 0.0%id, 74.7%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 24608556k total, 24419868k used, 188688k free, 7712k buffers
Swap: 18874360k total, 14735196k used, 4139164k free, 3111048k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23414 oracle 20 0 18.3g 492m 44m R 98.8 2.0 179:33.16 oracle
58 root 20 0 0 0 0 S 4.0 0.0 1456:15 kswapd0
19146 oracle 20 0 216m 4548 2088 S 0.7 0.0 582:28.76 tnslsnr
24230 oracle 20 0 18.3g 1.2g 808m D 0.7 5.2 0:39.01 oracle
1 root 20 0 19404 516 296 S 0.3 0.0 85:40.07 init
5374 oracle 20 0 17.9g 7100 6236 S 0.3 0.0 2:16.30 oracle
27673 oracle 20 0 15220 1452 956 R 0.3 0.0 0:02.11 top
更多关于“慢”对你意味着什么的信息会很有帮助。所有的查询都很慢还是只有某些查询?你们到底观察到了什么是慢的?根据我的经验,当日志文件开关咬你们时,你们要么并没有足够大的重做日志,要么并没有足够的重做日志,或者两者都有。或者,重做日志位于速度非常慢的磁盘子系统上。或者,您没有足够的
dbwriter
进程。然而,你需要做更多的分析来确定这张处方中哪一部分(如果有的话)适合你的病症。我通常在Enterprise Manager数据库控制台中打开诊断包,并使用它快速收集SQL的性能问题。。。但是你必须授权它才能这么做。谢谢你的回复。Doug@The数据库对于所有查询都很慢。即使是从dual中选择*有时也需要3-5秒才能给出结果。John@We没有与sqls相关的问题,因为它们在其他环境中运行良好。我们最近增加了重做日志大小以减少日志切换。您能告诉我如何确认磁盘速度慢是这里的问题吗。