知识大全 Oracle诊断案例2 -SGA与Swap

Posted 数据库

篇首语:岁寒,然后知松柏之后凋也。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle诊断案例2 -SGA与Swap相关的知识,希望对你有一定的参考价值。

Oracle诊断案例2 -SGA与Swap  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   案例描述:  这是一个大型生产系统  问题出现时系统累计大量用户进程  用户请求得不到及时响应 新的进程不断尝试建立连接  连接数很快被用完    数据库版本:   操作系统:Solaris      检查alert文件  日志中记录如下错误信息 说明磁盘异步IO出现问题:    WARNING: aiowait timed out times  Tue Aug : :   WARNING: aiowait timed out times  Tue Aug : :   WARNING: aiowait timed out times  Tue Aug : :   WARNING: aiowait timed out times  Tue Aug : :   WARNING: aiowait timed out times  Tue Aug : :   WARNING: aiowait timed out times  Tue Aug : :   WARNING: aiowait timed out times  Tue Aug : :   WARNING: aiowait timed out times  Tue Aug : :   WARNING: aiowait timed out times  Tue Aug : :   WARNING: aiowait timed out times  Tue Aug : :   WARNING: aiowait timed out times       我们知道在SUN的某些版本上异步IO存在问题 而异步IO缺省是打开的  代码:    SQL> show parameter disk_a    NAME                 TYPE    VALUE     disk_asynch_io            boolean   TRUE      针对此问题 我们停用了数据库的异步IO写入      共享内存问题  alert文件中还记录了以下错误信息:    Tue Aug : :   WARNING: EINVAL creating segment of size x   fix shm parameters in /etc/system or equivalent    该信息说明内核参数设置过小或者和SGA不匹配    我们检查system配置文件    $ cat /etc/system     set shmsys:shminfo_shmmax=   set shmsys:shminfo_shmmin=   set shmsys:shminfo_shmmni=   set shmsys:shminfo_shmseg=   set semsys:seminfo_semmap=   set semsys:seminfo_semmni=   set semsys:seminfo_semmns=   set semsys:seminfo_semmnu=   set semsys:seminfo_semume=   set semsys:seminfo_semmsl=     我们发现最大共享内存设置仅有 G     检查SGA设置  SQL*Plus: Release Production on 星期二 月 : :     Copyright (c) Oracle Corporation All rights reserved     Connected to:  Oracle i Enterprise Edition Release bit Production  With the Partitioning OLAP and Oracle Data Mining options  JServer Release Production    SQL> show sga    Total System Global Area bytes  Fixed Size bytes  Variable Size bytes  Database Buffers bytes  Redo Buffers bytes    我们发现SGA设置接近 G 这也就是步骤 中错误提示出现的原因     交换区问题  我们用top工具检查系统运行状况     代码:     # /usr/local/bin/top    last pid: ; load averages:                             : :      processes: sleeping running on cpu    CPU states: % idle   % user   % kernel % iowait   % swap    Memory: M real M free G swap in use G swap free     PID USERNAME THR PRI NICE SIZE  RES STATE  TIME  CPU MAND     oracle        M M sleep   :   % oracle     oracle        M M sleep   :   % oracle      root         K K sleep  :   % picld     oracle        M M sleep   :   % oracle     root         K K cpu/    :   % top     oracle        M M sleep   :   % oracle     oracle        M M sleep   :   % oracle     oracle        M M sleep   :   % oracle     oracle        M M sleep   :   % oracle     oracle        M M sleep   :   % oracle     oracle        M M sleep   :   % oracle     oracle        M M sleep   :   % oracle     oracle        M M sleep   :   % oracle     oracle        M M sleep   :   % oracle     oracle        M M sleep   :   % oracle      Memory: M real M free G swap in use G swap free    我们发现系统仅有 G RAM 物理内存仅有 M可用 现在SWAP区使用了 G    我们初步作出以下判断:    SGA设置过大(将近 G)导致运行时产生大量交换    大量SWAP交换进而引发磁盘问题 这也就应该是我们第一步看到  WARNING: aiowait timed out times的原因    大量交换导致数据库性能急剧下降 进而导致用户请求得不到快速响应 堵塞 累积 直至数据库失去响应     解决方案  此问题主要是由于SGA设置不当引起 我们马上缩小了SGA设置:    SQL> show sga    Total System Global Area bytes  Fixed Size bytes  Variable Size bytes  Database Buffers bytes  Redo Buffers bytes    此时 数据库减少了交换 达到了稳定运行 用户请求可以得到快速响应     问题解决完成      系统状态  调整后系统运行状况:     代码:     $ top    last pid: ; load averages:            : :      processes: sleeping on cpu    CPU states: % idle   % user   % kernel   % iowait   % swap    Memory: M real M free M swap in use G swap free      PID USERNAME THR PRI NICE SIZE  RES STATE  TIME  CPU MAND     oracle        M  M sleep   :   % oracle     oracle        M  M sleep   :   % oracle     oracle        M  M sleep   :   % oracle     oracle        M  M sleep   :   % oracle     oracle        M  M sleep   :   % oracle     oracle        M  M sleep   :   % oracle      root         K K sleep   :   % picld     oracle        M  M sleep   :   % oracle     oracle        K K cpu/    :   % top     oracle        M  M sleep   :   % oracle     oracle        M  M sleep   :   % oracle     oracle        M  M sleep   :   % oracle      oracle          M K sleep   :   % tnslsnr     oracle        M  M sleep   :   % oracle     oracle        M  M sleep   :   % oracle      该系统调整完以后 一直稳定运行至今      一点总结:  这个案例和前面我提到的另外一个极其相似 同样都是SGA设置不当引起的数据库问题    本身并不复杂  这一类问题应该在数据库规划和建设阶段就避免掉     其时 该问题对我更像是个心理测试 当所有老板都站在你背后的时候 你能否冷静快速的找到并解决问题     关于SUN上的aiowait timed out 有很多总情况及诱因 cha138/Article/program/Oracle/201311/17109

相关参考

知识大全 一个诊断案例(3)

高性能MySQL:一个诊断案例(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一个诊断案例

知识大全 一个诊断案例(4)

高性能MySQL:一个诊断案例(4)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一个诊断案例

知识大全 工作中遇到的oracle故障分析和处理一例

  案例类别VAS网络系统类型CMODE系统版本硬件SUN软件所有版本案例标题CMODE放号中的数据库出现LOCK的处理方法故障现象启动sam_cmode进程不能正常处理工单故障描述启动以sam_cm

知识大全 Oracle数据库诊断性能问题

Oracle数据库诊断性能问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用扩展SQL跟踪

知识大全 Oracle诊断工具-RDA使用概述

Oracle诊断工具-RDA使用概述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  RDA是Re

知识大全 ORACLE数据库常见问题诊断方法

ORACLE数据库常见问题诊断方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ORACLE的

知识大全 ORACLE性能诊断―学习statspack笔记(二)

ORACLE性能诊断―学习statspack笔记(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ORACLE性能诊断―学习statspack笔记(一)

ORACLE性能诊断―学习statspack笔记(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 诊断Oracle数据库Hanging问题

诊断Oracle数据库Hanging问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  适用范围

知识大全 用Oracle中的Statspack诊断数据库性能实例

用Oracle中的Statspack诊断数据库性能实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧