知识大全 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相关参考
高性能MySQL:一个诊断案例(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一个诊断案例
高性能MySQL:一个诊断案例(4) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一个诊断案例
案例类别VAS网络系统类型CMODE系统版本硬件SUN软件所有版本案例标题CMODE放号中的数据库出现LOCK的处理方法故障现象启动sam_cmode进程不能正常处理工单故障描述启动以sam_cm
Oracle数据库诊断性能问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使用扩展SQL跟踪
Oracle诊断工具-RDA使用概述 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! RDA是Re
ORACLE数据库常见问题诊断方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ORACLE的
知识大全 ORACLE性能诊断―学习statspack笔记(二)
ORACLE性能诊断―学习statspack笔记(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
知识大全 ORACLE性能诊断―学习statspack笔记(一)
ORACLE性能诊断―学习statspack笔记(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
诊断Oracle数据库Hanging问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 适用范围
知识大全 用Oracle中的Statspack诊断数据库性能实例
用Oracle中的Statspack诊断数据库性能实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧