免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5190 | 回复: 9
打印 上一主题 下一主题

[小机硬件] Oracle 10g AIX CPU WAIT [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-26 14:08 |只看该作者 |倒序浏览
AIX 5.3上的 Oracle 10g 一运行某些SQL,CPU 的WAIT会非常高,一直在50%左右,
PAGING也很频繁,DB的响应也很慢。
系统配置为8G内存,其中4G划给了这个实例的SGA, 另外还有一个实例,分了1G。 按理说ORACLE10g
SGA能自动调整,不需要优化,而且这种配置,即使缺省参数也不会跑成那个德行。
是ORACLE参数配置问题,还是那些弱智SQL实在太耗资源,导致系统不停的SWAP?

Topas Monitor for host:    P570_2_2             EVENTS/QUEUES    FILE/TTY
Wed Apr 26 13:58:23 2006   Interval:  2         Cswitch    1635  Readch  1048.9K
                                                Syscall    4782  Writech 1279.2K
Kernel    2.5   |#                           |  Reads        84  Rawin         0
User      5.3   |##                          |  Writes      105  Ttyout      290
Wait     65.5   |###################         |  Forks         0  Igets         0
Idle     26.6   |########                    |  Execs         0  Namei        19
                                                Runqueue    0.0  Dirblk        0
Network  BKBPS   BI-Pack  O-Pack   KB-In  KB-Out  Waitqueue 8.6
lo0      35.2    106.3   106.3    17.6    17.6
en3       0.9      4.5     3.5     0.4     0.6    PAGING           MEMORY
en0       0.2      2.5     0.0     0.2     0.0    Faults    438    Real,MB  4095
                                                  Steals      0    % Comp   79.9
Disk    BBusy%     BKBPS     TPS KB-Read KB-Writ  PgspIn    190    % Noncomp20.3
hdisk0   98.7   2339.5   265.0   431.2  1908.3    PgspOut   477    % Client 21.3
hdisk1   93.7   2269.0   246.3   342.6  1926.4    PageIn    469
hdisk5   20.1    241.8    29.7   181.4    60.5    PageOut   848    PAGING SPACE
hdisk4   12.5   1076.1    43.3   306.3   769.8    Sios     1064    Size,MB  8192
hdisk2   10.5   1287.7    92.2   632.7   654.9                     % Used   54.0
hdisk3    0.0      8.1     1.0     0.0     8.1    NFS (calls/sec)  % Free   45.9
                                                  ServerV2     0
                                                  ClientV2     0     Press:
                                                  ServerV3     0     "h" for hel

论坛徽章:
0
2 [报告]
发表于 2006-04-26 14:19 |只看该作者
怎么会不高呢,你的Real,MB  4095,还有4G去哪里了,如果你的SGA设置了5G>REAL Mem;当然会频繁调用page了,不过你的PAGE还设置的可以8G,和你说的你的REAL一样多。

论坛徽章:
0
3 [报告]
发表于 2006-04-26 14:46 |只看该作者

见鬼了,昨天前还是8G的

这都能丢?

论坛徽章:
0
4 [报告]
发表于 2006-04-26 14:49 |只看该作者
P570吧,那得看安装的如何,是不是一直就没有认到啊,还有就是检查硬件故障errpt/diag

论坛徽章:
0
5 [报告]
发表于 2006-04-26 14:58 |只看该作者

不是

以前一直都能看到8G的,即使是8G时,情况也好不了多少;我不清楚是不是个别SQL太不合理会占用过多资源,ORACLE有没有策略不让这种SQL过多影响总体性能?

论坛徽章:
0
6 [报告]
发表于 2006-04-26 15:03 |只看该作者
什么样的SQL能占用这么多的资源呢?
如果是SQL占用,你要先判断一下此时你的业务系统运行正常吗,如果正常的话,基本可以排除是SQL的原因;如果不正常,就应先找到什么SQL占用了资源。

建议
1、首先恢复“丢失”的4G内存;
2、用NMON来后台执行24小时,取到系统资源使用情况的记录,用NMON_analyze来分析资源是否不够;
3、用Statspack全面分析ORACLE使用情况,或简单的用几个语句看看命中率等指标;

[ 本帖最后由 aixcq 于 2006-4-26 15:11 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2006-04-26 15:25 |只看该作者

谢谢,我试试

我还没用过statspack,一直都用emconsole看的,那些sql就是它告诉我的,个别sql占了甚至50%的资源

论坛徽章:
0
8 [报告]
发表于 2006-04-26 15:27 |只看该作者
个别sql占了甚至50%的资源
是指那些资源啊,

论坛徽章:
0
9 [报告]
发表于 2006-04-26 15:35 |只看该作者

重要的oracle性能指标简要判断方法

1. 缓冲区命中率
显示了对于数据总读取量而言,非磁盘读取(缓冲区命中)的百分比。当然,十分高的命中率并不代表数据库性能一定优良,也有可能是糟糕的SQL引起了大量的缓冲区读操作,只有在已经调整过首要的查询之后,这个命中率才能更好地反映数据库性能。

检查方法:
select (1 - (sum(decode(name, 'physical reads', value, 0)) /
       (sum(decode(name, 'db block gets', value, 0)) +
       sum(decode(name, 'consistent gets', value, 0))))) * 100
       "Hit Ratio"
  from v$sysstat;



2. 数据字典命中率
显示了对数据字典和其它对象的内存读操作的百分比。

检查方法:
select (1 - (sum(getmisses) / sum(gets))) * 100 "Hit Ratio"
  from v$rowcache;


3. 库缓存命中率
显示了对SQL和PL/SQL对象的内存读操作的百分比。同样注意,很高的命中率并不总是反映数据库性能优秀。

检查方法:
select sum(pins) / (sum(pins) + sum(reloads)) * 100 "Hit Ratio"
  from v$librarycache;



4. 内存中的排序
根据初始化参数PGA_AGGREGATE_TARGET或者SORT_AREA_SIZE的值,用户的排序操作可能在内存中执行,也可能在临时表空间中执行。这个检查用以显示在内存中排序占总排序的百分比。

检查方法:
select a.value "Disk Sorts",
       b.value "Memory Sorts",
       round((100 * b.value) /
             decode((a.value + b.value), 0, 1, (a.value + b.value)),
             2) "Pct Memory Sorts"
  from v$sysstat a, v$sysstat b
where a.name = 'sorts (disk)'
   and b.name = 'sorts (memory)';



5. 空闲的数据缓冲区比例
空闲的记录数除以X$BH表中的记录总数(即所分配的数据块缓冲区的总数)得到的空闲缓冲区百分比。同样注意,拥有众多空闲缓冲区的数据库不一定是最佳环境,因为可能是缓冲区设置过大,浪费内存。

检查方法:
select decode(state,
              0,
              'FREE',
              1,
              decode(lrba_seq, 0, 'AVAILABLE', 'BEING USED'),
              3,
              'BEING USED',
              state) "Block Status",
       count(*)
  from x$bh
group by decode(state,
                 0,
                 'FREE',
                 1,
                 decode(lrba_seq, 0, 'AVAILABLE', 'BEING USED'),
                 3,
                 'BEING USED',
                 state);




6. 最浪费内存的前10个语句占全部内存读取量的比例
通常一个没有优化系统中,10个最常用的SQL语句的访问量会占到整个系统中内存读操作的50%以上。这些SQL是最需要进行优化的部分,也是优化工作中优先级很高的部分。

检查方法:
select sum(pct_bufgets)
  from (select rank() over(order by buffer_gets desc) as rank_bufgets,
               to_char(100 * ratio_to_report(buffer_gets) over(), '999.99') pct_bufgets
          from v$sqlarea)
where rank_bufgets < 11;



7. 调整前25个最浪费内存的语句
在没有调整的情况下,绝大多数系统中,访问量占前25位的语句的内存读操作将占用整个系统所有内存读操作的75%,对这部分语句进行调整是至关重要的。这部分脚本用于获得访问量占前25位的SQL语句。

检查方法:
set serveroutput on size 1000000
declare
  top25 number;
  text1 varchar2(4000);
  x     number;
  len1  number;
  cursor c1 is
    select buffer_gets, substr(sql_text, 1, 4000)
      from v$sqlarea
     order by buffer_gets desc;
begin
  dbms_output.put_line('Gets' || '     ' || 'Text');
  dbms_output.put_line('--------' || ' ' || '---------------');
  open c1;
  for i in 1 .. 25 loop
    fetch c1
      into top25, text1;
    dbms_output.put_line(rpad(to_char(top25), 9) || ' ' ||
                         substr(text1, 1, 66));
    len1 := length(text1);
    x    := 66;
    while len1 > x - 1 loop
      dbms_output.put_line('"        ' || substr(text1, x, 66));
      x := x + 66;
    end loop;
  end loop;
end;
/

论坛徽章:
0
10 [报告]
发表于 2011-05-19 17:24 |只看该作者
这个要顶
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP