免费注册 查看新帖 |

Chinaunix

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

如何诊断解决单个进程占用CPU资源98%的现象 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-24 10:36 |只看该作者 |倒序浏览
我在一台SUN E420主机上发现,经常会有某一个Oracle进程,长时间的占用98%的CPU资源。是该Oracle SQL有问题嘛?还是系统性能瓶颈,为什么一跑运行时间长点的进程,CPU利用率就高居不下呢?
谢谢!

论坛徽章:
0
2 [报告]
发表于 2003-12-24 10:38 |只看该作者

如何诊断解决单个进程占用CPU资源98%的现象

用truss一试

论坛徽章:
0
3 [报告]
发表于 2003-12-24 11:23 |只看该作者

如何诊断解决单个进程占用CPU资源98%的现象

truss -p的结果
看不明白:
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF3070, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                 = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
yield()                                         = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0
poll(0xFFFFFFFF7FFF24B0, 1, 0)                  = 0

论坛徽章:
0
4 [报告]
发表于 2003-12-24 11:33 |只看该作者

如何诊断解决单个进程占用CPU资源98%的现象

bash[root@oss:/]=>;pmap -x 2705
2705:   oracledb1 (LOCAL=NO)
         Address   Kbytes Resident Shared Private Permissions       Mapped File
0000000100000000   29336   14192   14192       - read/exec         oracle
0000000101DA4000     464     288     200      88 read/write/exec   oracle
0000000101E18000     504     496       -     496 read/write/exec     [ heap ]
0000000380000000 1146048 1146048 1146048       - read/write/exec/shared  [ ism shmid=0x1f5 ]
FFFFFFFF7D000000      16      16      16       - read/exec         libc_psr.so.1
FFFFFFFF7D100000       8       8       -       8 read/write/exec     [ anon ]
FFFFFFFF7D200000      16      16      16       - read/exec         libmp.so.2
FFFFFFFF7D304000       8       8       -       8 read/write/exec   libmp.so.2
FFFFFFFF7D400000      88      80      80       - read/exec         libm.so.1
FFFFFFFF7D516000       8       8       -       8 read/write/exec   libm.so.1
FFFFFFFF7D600000       8       8       8       - read/exec         libkstat.so.1
FFFFFFFF7D702000       8       8       -       8 read/write/exec   libkstat.so.1
FFFFFFFF7D800000      32      32      32       - read/exec         librt.so.1
FFFFFFFF7D908000       8       8       -       8 read/write/exec   librt.so.1
FFFFFFFF7DA00000       8       8       -       8 read/write/exec     [ anon ]
FFFFFFFF7DB00000      32      32      32       - read/exec         libaio.so.1
FFFFFFFF7DC08000       8       8       -       8 read/write/exec   libaio.so.1
FFFFFFFF7DD00000     720     576     576       - read/exec         libc.so.1
FFFFFFFF7DEB4000      56      56       -      56 read/write/exec   libc.so.1
FFFFFFFF7DEC2000       8       8       -       8 read/write/exec   libc.so.1
FFFFFFFF7DF00000       8       8       8       - read/exec         libsched.so.1
FFFFFFFF7E002000       8       8       -       8 read/write/exec   libsched.so.1
FFFFFFFF7E100000       8       8       8       - read/write/exec/shared   [ anon ]
FFFFFFFF7E200000      32      24      24       - read/exec         libgen.so.1
FFFFFFFF7E308000       8       8       -       8 read/write/exec   libgen.so.1
FFFFFFFF7E400000      56      40      40       - read/exec         libsocket.so.1
FFFFFFFF7E50E000      16      16       -      16 read/write/exec   libsocket.so.1
FFFFFFFF7E600000     672     264     264       - read/exec         libnsl.so.1
FFFFFFFF7E7A8000      56      56       -      56 read/write/exec   libnsl.so.1
FFFFFFFF7E7B6000      40      32       -      32 read/write/exec   libnsl.so.1
FFFFFFFF7E800000    4968    1432    1432       - read/exec         libjox8.so
FFFFFFFF7EDD8000     320     232       -     232 read/write/exec   libjox8.so
FFFFFFFF7EE28000       8       -       -       - read/write/exec   libjox8.so
FFFFFFFF7EF00000       8       8       -       8 read/write/exec     [ anon ]
FFFFFFFF7F000000      40      32      32       - read/exec         libdsbtsh8.so
FFFFFFFF7F108000       8       8       -       8 read/write/exec   libdsbtsh8.so
FFFFFFFF7F10A000       8       -       -       - read/write/exec   libdsbtsh8.so
FFFFFFFF7F200000       8       8       8       - read/exec         libskgxp8.so
FFFFFFFF7F300000       8       8       -       8 read/write/exec   libskgxp8.so
FFFFFFFF7F400000       8       8       8       - read/exec         libdl.so.1
FFFFFFFF7F500000       8       8       -       8 read/write/exec     [ anon ]
FFFFFFFF7F600000     152     152     152       - read/exec         ld.so.1
FFFFFFFF7F724000      16      16       -      16 read/write/exec   ld.so.1
FFFFFFFF7FFF0000      64      64       -      64 read/write          [ stack ]
----------------  ------  ------  ------  ------
        total Kb 1183912 1164344 1163176    1168

重上面结果看,是不是内存分配不合理啊?

论坛徽章:
0
5 [报告]
发表于 2003-12-24 11:44 |只看该作者

如何诊断解决单个进程占用CPU资源98%的现象

我也遇到在E3500上面ORACLE进程占用99%,而且是长期,非常稳定地占用。

下面是mpstat/vmstat/iostat的结果:

C# mpstat 3 60
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
14   79   3 2292  1091  791 1570  595   52   20    6 19989   74  22   3   2
15   71   3 1943   832   92 1771  666   52   18    6 24982   76  20   2   2
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
14  264   0 6900  1256  737 1186  526   24   16    0 30507   72  28   0   0
15   55   0   90   983   55 1986  800   23   18    0 24358   86  14   0   0
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
14    3   3   75   826  562 1157  487   20    9    0 14054   85  15   0   0
15    0   0 1232   660   56 1161  504   24    6    0 39339   88  12   0   0
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
14    0   2 2344   801  622 1696  681   30   15   12 47358   78  22   0   0
15    0   2  146   559   75  838  382   29    9    6 31553   87  13   0   0
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
14  111   5  171   871  700 2123  806   42   15   10 44152   81  19   0   0
15  323   4  291   661  109 1098  503   46   12   28 48069   78  22   0   0
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
14    0   3 15880   909  700 1577  643   39    9   12 46442   69  31   0   0
15   11  11  154   718   86 1207  518   33    7    7 20817   87  13   0   0
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
14  175  15 7373   985  644 1103  492   23   15    1 25150   71  29   0   0
15  142   0 7477   793   62 1505  632   25   14    1 27363   82  18   0   0
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
14  246   0 1309  1231  939 2066  760   31   16    0 14179   85  15   0   0
15  132   0  342   852   63 1657  694   32   17    0 40968   85  15   0   0
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
14   84   0 7279  1076  737 1772  708   26   24    1 42744   71  29   0   0
15  412   0 6434   692   54 1138  509   27   20    0 17627   80  20   0   0
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
14  260   0  442  1081  724 1797  731   22   18    1 39565   79  21   0   0
15   12   0 6182   712   64 1145  521   20   19    0 22368   84  16   0   0
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
14   58   1  223  1187  826 1953  803   24   26    0 26204   82  18   0   0
15  169   0  163   822   81 1579  636   25   21    0 28570   83  17   0   0
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
14  147   1 6634  1025  770 1700  733   36   18    8 36443   75  25   0   0
15  231   2 6230   812   76 1437  622   37   16    7 32543   75  24   0   0
^C#

# iostat 3 60
      tty          sd5          sd15          sd17          sd18          cpu
tin tout kps tps serv  kps tps serv  kps tps serv  kps tps serv  us sy wt id
   0    7 768  78   14    0   0    0    0   0    0    0   0    0  75 21  3  2
   0   89 633  79   19    0   0    0    0   0    0    0   0    0  82 18  0  0
   0   26 504  63   15    0   0    0    0   0    0    0   0    0  74 26  0  0
   0   37 416  52    9    0   0    0    0   0    0    0   0    0  78 22  0  0
   0   26 403  50    9    0   0    0    0   0    0    0   0    0  80 20  0  0
   0   37 251  31    9    0   0    0    0   0    0    0   0    0  87 13  0  0
   0   37 304  38    9    0   0    0    0   0    0    0   0    0  84 16  0  0
   0   26 400  50    9    0   0    0    0   0    0    0   0    0  85 15  0  0
   0   37 675  84   14    0   0    0    0   0    0    0   0    0  77 22  0  0
   0   26 1261  73   20    0   0    0    0   0    0    0   0    0  83 17  0  0
   0   37 501  62   11    0   0    0    0   0    0    0   0    0  77 23  0  0
   0   37 613  76   12    0   0    0    0   0    0    0   0    0  82 18  0  0




# vmstat 3 60
procs     memory            page            disk          faults      cpu
r b w   swap  free  re  mf pi po fr de sr s5 s1 s1 s1   in   sy   cs us sy id
2 1 0 110776 19648  60 150 173 515 582 13936 13 78 0 0 0 1823 17712 3342 75 21
4
3 0 0 2470912 15504 37 236  0 328 549 15480 31 41 0 0 0 1994 54080 3616 85 15 0
5 0 0 2470664 15392 19 117 466 176 458 15480 50 42 0 0 0 2093 49191 3549 82 18
0
1 1 0 2470632 15728 31   0 1445 272 272 11296 0 131 0 0 0 1548 106079 2823 77 2
0 3
1 0 0 2470632 15616 59   0 258 530 530 8240 0 77 0 0 0 1674 115234 3032 77 20 2
4 1 0 2470632 15608 41  75 109 496 600 6016 21 70 0 0 0 1968 69850 3274 84 16 0
5 2 0 2470920 16080 51 243 138 541 541 13936 0 81 0 0 0 2040 82683 3556 79 21 0
4 0 0 2470736 15952 35 142 42 317 357 11296 6 48 0 0 0 1271 77339 2160 76 24 0
5 0 0 2470736 15976 29  94 45 288 288 8240 0 38 0 0 0 2323 51904 3971 86 14 0
4 0 0 2468392 15496 30 375 18 266 554 13936 51 34 0 0 0 2041 53577 3001 86 14 0
4 0 0 2467496 15320 41 790 56 357 736 15480 60 46 0 0 0 2187 60274 3178 81 19 0
4 1 0 2468344 16072 57 267 106 514 608 13936 17 65 0 0 0 2426 79751 3635 81 19
0
4 0 0 2468752 16552 36 149 10 344 344 15480 0 42 0 0 0 2254 54247 3546 85 15 0
3 0 0 2468528 16464 26 163 18 256 256 13936 0 36 0 0 0 1447 65195 2197 89 11 0
4 1 0 2468752 16640 46   0 168 485 485 10168 0 77 0 0 0 1412 93598 2765 82 18 0
7 1 0 2468752 16544 54  71 69 533 533 7416 0 75 0 0 0 2138 87094 3668 80 20 0
6 0 0 2468832 16592 44 236 80 397 397 12544 0 56 0 0 0 2175 64173 3088 73 27 0
4 0 0 2467752 16624 40 128 26 381 381 12544 0 51 0 0 0 1880 73297 2732 79 21 0
2 0 0 2469592 17184 18 141 34 136 136 13936 0 71 0 0 0 2902 75430 4245 79 20 0
procs     memory            page            disk          faults      cpu
r b w   swap  free  re  mf pi po fr de sr s5 s1 s1 s1   in   sy   cs us sy id
4 0 0 2469976 17088 48 189 322 210 210 13936 0 88 0 0 0 2408 67901 3728 82 18 0
4 0 0 2470504 16752 81 153 946 170 170 13936 0 114 0 0 0 1490 51560 2475 89 11
0
5 0 0 2469528 16304 36 379 29 314 314 11296 0 41 0 0 0 1604 51592 2842 84 16 0
6 1 0 2469416 16320 35 516 725 320 714 15480 74 50 0 0 0 1607 58560 2803 80 20
0
5 1 0 2468888 16184 32  20 3653 509 2024 11296 264 88 0 0 0 1858 87237 3174 81
19 0
5 2 0 2468888 15800 41   0 941 442 442 8240 0 77 0 0 0 1690 81748 2797 81 19 0
5 0 0 2469752 16184 19 463 16 189 189 13936 0 32 0 0 0 1912 49309 3331 78 22 0
4 0 0 2470232 16280 25 876 42 237 266 15480 4 32 0 0 0 2012 61265 3500 81 19 0
5 0 0 2472136 17976  9 171 72 69 264 13936 35 37 0 0 0 1353 61476 2322 80 20 0
3 0 0 2473928 19112  0  79  5  0  0 10168 0 55 0 0  0 2955 64156 4453 81 19 0
6 0 0 2474248 19216  0 246 42  0  0 13936 0 28 0 0  0 2053 52655 2982 84 16 0
5 0 0 2474368 19232  1   1 24  0  0 10168 0 38 0 0  0 1112 68540 1933 86 14 0
3 0 0 2474360 19080  2   0 34  0  0 7416 0 56 0  0  0 1802 72953 3138 84 16 0
2 0 0 2473752 18384  8 355 93  0  0 13936 0 64 0 0  0 2155 78604 3421 79 21 0
4 0 0 2473744 17696 10  93 106 0  0 11296 0 71 0 0  0 2182 88473 3209 79 21 0
5 0 0 2472968 16896 13 419 112 189 189 12544 0 54 0 0 0 1062 60444 1761 79 21 0
^C#

论坛徽章:
0
6 [报告]
发表于 2003-12-24 12:22 |只看该作者

如何诊断解决单个进程占用CPU资源98%的现象

it should be easy to find out if you can get a dba and ask him check the database see what the process is doing.

btw, you may want to check your network usage as well.

论坛徽章:
0
7 [报告]
发表于 2003-12-24 12:55 |只看该作者

如何诊断解决单个进程占用CPU资源98%的现象

我知道是一个存储过程在执行,可即使是如下的一个存储过程,表的数据为40万行,该进程的CPU利用率,也近100%

create or replace procedure cardno_update
is
  v_cardno VARCHAR2(12;
  i number :=0;
  cursor v_customer is select cardno from customer;
begin
  open v_customer;
  loop
  fetch v_customer into v_cardno;
  update customer set cardno=lpad(cardno,8,'0') where cardno=v_cardno;
  i := i+1;
  exit when v_customer%notfound;
  end loop;
  close v_customer;
  dbms_output.put_line('The number be update is: '||i);
end cardno_update;

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2003-12-24 13:54 |只看该作者

如何诊断解决单个进程占用CPU资源98%的现象

不要形成这么大的的表,建议分成几个小的表。

还有,最好把索引从你的表空间中分出来,单独放在一个表空间中。
这样可以减少io读取。

这些东西好具体分析了,数据中最好不要有通配符。

有可能是程序本身问题

论坛徽章:
0
9 [报告]
发表于 2003-12-24 14:10 |只看该作者

如何诊断解决单个进程占用CPU资源98%的现象

The proc you provided is really a poor expample to update lots of records.  You can use multiple updates and commits  or use CATS method .

论坛徽章:
0
10 [报告]
发表于 2003-12-25 00:54 |只看该作者

如何诊断解决单个进程占用CPU资源98%的现象

原帖由 "wangdrome" 发表:
我在一台SUN E420主机上发现,经常会有某一个Oracle进程,长时间的占用98%的CPU资源。是该Oracle SQL有问题嘛?还是系统性能瓶颈,为什么一跑运行时间长点的进程,CPU利用率就高居不下呢?
谢谢!

更具你的Truss结果,很可能你的Oracle碰上Bug乐。或者你的那个程序有点问题。

正常跑SQL的结果不会是这样的。

那个存储过程也搞笑,分明是一个update 可以搞定的,一定要一条一条Update。
或者直接ctas更快了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP