捷凌网安Oracle频道
中国IT教育
首页 入门基础 安装配置 体系架构 PLSQL 备份恢复 性能调优 开发技术 资讯动态 考试认证 讨论
 您现在的位置: 捷凌网安 >> Oracle >> 性能调优 >> 正文
讲解Oracle在Solaris下的性能与调整

作者:佚名 责任编辑:左决 点击数: 更新时间:2008-4-30 5:16:53

    2. 知道你的系统在正常情况下会怎样

    保存你的系统是如何正常运转的样例是一个好主意。你可以很容易地收集和保存每月的性能数据,比如:

    *stat类:vmstat, mpstat, iostat, vxstat,sar

    ps的输出以显示哪些进程在运行 (在Solaris 8操作环境下是prstat)。另外,有不少商业的和无支持的产品都可以用来做性能监测。一个免费的无支持的可选产品是SE Toolkit(要获得其各种版本的信息,请看Sun Performance SE Toolkit page)。SE ToolkIT报告磁盘活动、CPU利用情况、TCP和网络连接、内存,以及其他更多信息。在我们的经验里,它安装方便,不需要重启系统,并且生成容易理解的图形显示。

    很多这类产品都存在一个共同的问题,就是对不同的硬件配置有不同的门限值。例如,特定的门限值对于400-MHz的系统可能显得太过,会让这个系统慢得象是在爬一样,但是对于一个900-MHz的系统却可能是可以接受的。

    3. 寻找性能瓶颈

    一旦你已经定义了需要解决的性能问题,下一步骤就是缩小范围到瓶颈产生的地方。

    这个阶段有必要问这样一些问题:

    应用程序能告诉我它看到哪些是瓶颈?拿Oracle作例子,一个oracle数据库管理员应该知道BSTAT/ESTATS是什么以及如何运行和理解它们。还是那句话,从应用程序的角度来看问题,BSTATS/ESTATS可以显示限制了Oralce性能的瓶颈,这可以作为进一步分析的指导。

    大部分的时间花在哪里,是内核还是用户进程?通过vmstat、mpstat、sar、ps、prstat可以回答这个问题。

    具有相近类型的所有资源是否同样繁忙?这个问题的意义在于寻找资源的不平等分布。比如,一个磁盘可能是瓶颈所在,或者一个CPU会比其他CPU更忙。对CPU,看mpstat.对磁盘,用iostat.  哪个或哪些进程在使用最多的资源?用这些命令可以看到使用CPU和内存最多的进程:

    ps -eo pid,pcpu,args | sort +1n

    CPU百分比:

    ps -eo pid,vsz,args | sort +1n

    K字节的虚拟内存:

    /usr/ucb/ps aux |more

    输出被排序,使用CPU和内存最多的进程排在上面。

    Solaris 8操作环境提供了prstat,它给出CPU和内存使用情况的一个动态注解。prstat -cvm的输出结果非常有用。

    我们现在来看看怎用使常见的Solaris命令来开始性能分析。

    vmstat命令是简单的。这里我们可以看到一个对于正在执行的应用程序,CPU能力不足的例子。

    % vmstat 15

    procs memory page disk faults cpu

    r b w swap free re mf pi po fr de sr m0 m1 m2 m3 in sy cs us sy id

    45 0 0 2887216 182104 3 707 449 6 455 0 80 2 6 1 0 1531 5797 983 61 30 9

    58 0 0 2831312 46408 5 983 582 56 3211 0 492 0 0 0 0 1413 4797 1027 69 31 0

    55 0 0 2830944 56064 2 649 656 3 806 0 121 0 0 0 0 1441 4627 989 69 31 0

    57 0 0 2827704 48760 4 818 723 6 800 0 121 0 0 1 0 1606 4316 1160 66 34 0

    56 0 0 2824712 47512 6 857 604 56 1736 0 261 0 0 1 0 1584 4939 1086 68 32 0

    58 0 0 2813400 47056 7 856 673 33 2374 0 355 0 0 0 0 1676 5112 1114 70 30 0

    60 1 0 2816712 49464 7 861 720 6 731 0 110 7 0 3 0 2329 6131 1067 64 36 0

    58 0 0 2817552 48392 4 585 521 0 996 0 146 0 0 0 0 1357 6724 1059 71 29 0

    vmstat输出的第一行总是可以忽略。在"procs"下面标着"r"的一列是等待获得CPU的进程运行队列中的进程数。"id"列是CPU空闲时间。这台机器没有足够的CPU资源以满足进程运行的需要,这可以从它的大部分CPU时间花在用户空间里看出来(看"us"列)。

    这里有两种办法可供采用——第一,增加更多的CPU,或者第二,对应用程序的代码作性能分析看看是不是应用程序的某部分可以优化。对代码片断作优化可能会需要非常大量的努力——而且有时候收到的效果很少。在关系到时间的时候,最好在考虑你可能的“投资回报”时现实一点。

上一页  [1] [2] 

  • 上一篇文章:

  • 下一篇文章:
  •  
     最进更新
    普通文章如何获得Oracle DBA工作?05-11
    普通文章分别删除数据表记录的方法05-11
    普通文章实例讲解删除表空间时存在的05-11
    普通文章Oracle Wait Event:Data fil05-11
    普通文章重复利用这个外部表的表结构05-11
    普通文章Oracle 9i数据库的用户创建以05-11
    普通文章Oracle数据库应用程序中RAID05-11
    普通文章如何更改监听器设置05-11
    普通文章Oracle中SQL语句执行效率的查05-11
    普通文章掌握数据库链路的建立和使用05-11
     
     推荐文章
    推荐文章研究人员发现攻击Oracle数据04-30
    推荐文章研究人员找到新方法黑掉Orac04-30
    推荐文章数据库产业商业模式大猜想04-30
    推荐文章一种并发控制的精典案例04-30
    推荐文章讲解Oracle在Solaris下的性能04-30
    推荐文章Oracle中为什么会产生回滚与04-30
    推荐文章实例讲解sql_trace和access 04-30
    推荐文章Oracle数据库9i和10g环境下使04-30
    推荐文章Oracle数据库后台进程的具体04-30
    推荐文章Oracle数据库中Undo数据段的04-30
     
     热点文章
    普通文章PB内置Oracle数据库接口的使03-27
    普通文章用最简单的方法记录Oracle语03-27
    推荐文章教你快速掌握Oracle数据库的03-27
    推荐文章详细讲解"Oracle"数据库的“03-27
    普通文章深入讲解Oracle数据库的多栏03-27
    推荐文章教你快速掌握一个简单的Orac03-27
    推荐文章初学者应该如何理解Oracle的03-27
    普通文章怎样将"Oracle"的外部表汉字03-27
    推荐文章解决不同字符集数据库间的数03-27
    普通文章Oracle的window服务启动时并03-27

    | 设为首页 | 加入收藏 | 联系站长 | 广告服务 | 友情链接 | 版权申明 | 网站地图 |

    在线交流 捷凌网安主群:51649627
    Copyright 2007-2008 © 捷凌网安. All rights reserved.
    备案序号:蜀ICP备08001812号