知识大全 Oracle在Solaris下的性能与调整

Posted 系统

篇首语:人还是要乐观,心碎了就对自己说,碎碎平安。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle在Solaris下的性能与调整相关的知识,希望对你有一定的参考价值。

Oracle在Solaris下的性能与调整  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  当一个系统运行缓慢性能下降的时候 很难知道原因是什么 是内存泄漏 磁盘子系统瓶颈 还是某个特定应用程序在可扩展性方面有限制?有一些途径可以发现和了解引起性能问题的根源 并且有可能消除它      本文给出了从哪里入手的一些建议 文中介绍了如何着手性能方面的考虑以及如何定位常见的性能瓶颈 还介绍了与性能密切相关一些概念 比如私有的共享内存(ISM Intimate Shared Memory)与优先内存页面调度 文章重点是放在Solaris 和 操作环境下      着手性能问题   性能 或许比计算机系统其它方面的行为更需要有通盘的考虑 为了识别来自一个或多个组件的问题根源 必须要采取结构化的方法      实际的结果是 解决性能问题过程中最重要的一个部分是定义你正在试图解决的问题 从实际应用的方面来讲 这意味着定义一个操作或者测试用例 从而可以      A) 知道系统当前有多快    B) 知道系统需要快 X 倍 或者知道系统曾经在不同环境下快过 X 倍      设置基线是开始的第一步 性能分析是由简单明确地定义所需解决的问题开始的自上而下的一个过程 如果你想要一个系统运行得快一些 你仍然需要定义这个系统的哪些属性是你想要改进的 以及哪些代价是你可以接受或者不可以接受的 除非你能够明确地描述出问题症状/机会 想要识别出问题的根源只会是碰运气      性能分析很象是侦探工作 我们通过证据和观察建立事实依据 非常小心不要陷入预先想象的与事实不符的结论中——只有在具备非常压倒性的证据时才确认猜想      对所有假设都要怀疑 其他人声称的事实实际上只是个可能正确也可能不正确的假设 如果这个假设是错误的 你可能会是在不正确的依据下工作 从而得出不正确的结论      这里有一些警告 Solaris操作环境在大多数情形下对于工作负荷的自我性能优化都是很好的 发行版本越新 需要手工做的性能优化就越少 性能问题的根源经常被发现是因为一个试图优化性能的行为引起的 首先需要注意应用程序 最后才是操作环境      任何对系统配置的更改 比如象内存大小和磁盘布局这样的性能设置 都应该检查其当前的正确性 同样 一个带参数的系统升级也有可能对新操作环境的性能带来影响       性能监测    从暴露出来的问题开始   什么操作使你看到性能问题的症状?     比如说 是特定类型的数据库查询 文件或网络操作比你期望的慢?在给出测试用例方面你能把操作步骤做到多具体 例如一个SQL查询或者 行的C程序?     最大程度利用你的知识尽可能准确地说明 什么地方出了什么问题 以定义你的问题 良好的问题说明的例子就像这样      一个SQL查询在VXFS上比在UFS上要花两倍的时间    SVR 消息队列操作在操作环境版本A上比在操作环境版本B上要多花百分之 的时间    登录进系统A比登录进系统Y多花三倍的时间    一个问题说明不应该包括解决方法或者是可能的解决方法      在大部分的时候 对问题有一个清晰的说明就意味着完成了解决问题过程的一大半了 在对你试图解决的问题进行说明的时候考虑到用户观点的因素也很重要 这意味着要从应用程序的角度来看 这和人们的天性相反 人们总是通过实验试图去证明或者证伪一个可能的原因 而不是依据观察得到的事实来评估一个原因的可能性程度      不恰当的问题说明就象这样      mpstat的 wt 列表明等待时间过多    用户任务花时间太长    一个系统和它的应用程序的功能正确性问题与性能问题之间的边界往往是一个灰色地带 整个系统挂起与进程挂起的问题不在本文讨论范围之内 如果你怀疑系统的功能不正确 而不是性能问题 那么给你的SUN解决方案中心打电话以找到一个解决问题的方法 高性能系统的前提是它的功能首先要正确      作为你积极的维护计划的一部分 检查/var/adm/messages中有没有比如磁盘重试之类的硬件问题或者有没有额外的消息产生也是很有价值的      察看系统的历史信息也非常有价值 如果你的系统曾经有过更好的性能 画一条时间曲线详细记录何时第一次发现性能变差以及从什么时候开始性能一直很差       知道你的系统在正常情况下会怎样   保存你的系统是如何正常运转的样例是一个好主意 你可以很容易地收集和保存每月的性能数据 比如      *stat类 vmstat mpstat iostat vxstat   sar   ps的输出以显示哪些进程在运行 (在Solaris 操作环境下是prstat)   另外 有不少商业的和无支持的产品都可以用来做性能监测 一个免费的无支持的可选产品是SE Toolkit(要获得其各种版本的信息 请看Sun Performance SE Toolkit page) SE Toolkit报告磁盘活动 CPU利用情况 TCP和网络连接 内存 以及其他更多信息 在我们的经验里 它安装方便 不需要重启系统 并且生成容易理解的图形显示      很多这类产品都存在一个共同的问题 就是对不同的硬件配置有不同的门限值 例如 特定的门限值对于 MHz的系统可能显得太过 会让这个系统慢得象是在爬一样 但是对于一个 MHz的系统却可能是可以接受的       寻找性能瓶颈   一旦你已经定义了需要解决的性能问题 下一步骤就是缩小范围到瓶颈产生的地方      这个阶段有必要问这样一些问题      应用程序能告诉我它看到哪些是瓶颈?拿Oracle作例子 一个Oracle数据库管理员应该知道BSTAT/ESTATS是什么以及如何运行和理解它们 还是那句话 从应用程序的角度来看问题 BSTATS/ESTATS可以显示限制了Oralce性能的瓶颈 这可以作为进一步分析的指导    大部分的时间花在哪里 是内核还是用户进程?通过vmstat mpstat sar ps prstat可以回答这个问题    具有相近类型的所有资源是否同样繁忙?这个问题的意义在于寻找资源的不平等分布 比如 一个磁盘可能是瓶颈所在 或者一个CPU会比其他CPU更忙 对CPU 看mpstat 对磁盘 用iostat    哪个或哪些进程在使用最多的资源?用这些命令可以看到使用CPU和内存最多的进程    ps eo pid pcpu args | sort + n     CPU百分比     ps eo pid vsz args | sort + n     K字节的虚拟内存     /usr/ucb/ps aux |more     输出被排序 使用CPU和内存最多的进程排在上面      Solaris 操作环境提供了prstat 它给出CPU和内存使用情况的一个动态注解 prstat cvm的输出结果非常有用      我们现在来看看怎用使用一些常见的Solaris命令来开始性能分析       vmstat 使用vmstat命令   vmstat命令是简单的 这里我们可以看到一个对于正在执行的应用程序 CPU能力不足的例子      % vmstat      procs memory page disk faults cpu     r b w swap free re mf pi po fr de sr m m m m in sy cs us sy id                                                     vmstat输出的第一行总是可以忽略 在 procs 下面标著 r 的一列是等待获得CPU的进程运行队列中的进程数 id 列是CPU空闲时间 这台机器没有足够的CPU资源以满足进程运行的需要 这可以从它的大部分CPU时间花在用户空间里看出来(看 us 列)      这里有两种办法可供采用——第一 增加更多的CPU 或者第二 对应用程序的代码作性能分析看看是不是应用程序的某部分可以优化 对代码片断作优化可能会需要非常大量的努力——而且有时候收到的效果很少 在关系到时间的时候 最好在考虑你可能的 投资回报 时现实一点       mpstat 使用mpstat命令   mpstat命令报告每个处理器的统计信息 表格中的每一行代表一个处理器的活动情况      $ mpstat      CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl                             CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl                  cha138/Article/program/Oracle/201311/18626

相关参考

知识大全 Oracle10g在solaris10下的自动运行脚本

Oracle10g在solaris10下的自动运行脚本  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 在Solaris下安装VNC 远程安装Oracle

在Solaris下安装VNC远程安装Oracle  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 oracle10g在Solaris10上的安装

oracle10g在Solaris10上的安装  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  修

知识大全 在Solaris下安装Oracle9i

在Solaris下安装Oracle9i  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!首先解释一下我

知识大全 ORACLE性能初步调整

性能调优:ORACLE性能初步调整  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在UserSc

知识大全 Solaris10下安装Oracle10g

Solaris10下安装Oracle10g  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一系统

知识大全 Solaris 下安装Oracle8.17文档

Solaris下安装Oracle8.17文档  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作者

知识大全 ORACLE中实现CRC32的计算函数,SOLARIS平台

ORACLE中实现CRC32的计算函数,SOLARIS平台  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 Oracle9i在AIX上的性能调整--内存篇

Oracle9i在AIX上的性能调整--内存篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!内存访

知识大全 Solaris安装Oracle10g之libCstd.so.1问题解决

Solaris安装Oracle10g之libCstd.so.1问题解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶