Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

51

积分

0

好友

20

主题
1#
发表于 2014-10-9 18:53:33 | 查看: 5189| 回复: 14
版本:
11.2.0.3+aix6100
参数:
sql>show parameter sga

lock_sga   false
sga_max_size 15G
sga_target  15G

sql>show parameter pga
pga_aggregate_target 3g

问题:
ps -elf  统计ora的进程内存 达到32g(其中local=no 达 22g)  ,剩余可用内存不多了

参数限制了sga_max_size 15g 为何进程还能占用32g ????
15#
发表于 2014-10-10 20:16:30
Mille 发表于 2014-10-10 17:12
不好意思 发错节点数据给你了
这个才是
是不是fs cache 占用比例太高了? ...

本来unix -like 的os都会尽可能使用cache作为fs cache,这很正常。

回复 只看该作者 道具 举报

14#
发表于 2014-10-10 17:12:30
Maclean Liu(刘相兵 发表于 2014-10-10 15:48
$ svmon -G
               size       inuse        free         pin     virtual   mmode
memory     14 ...

不好意思 发错节点数据给你了
这个才是
是不是fs cache 占用比例太高了?

svmon.jpg (38.49 KB, 下载次数: 422)

svmon

svmon

回复 只看该作者 道具 举报

13#
发表于 2014-10-10 17:10:31
Maclean Liu(刘相兵 发表于 2014-10-10 15:53
ps:

ps -elf|egrep "oracle${ORACLE_SID} |ora_.*${ORACLE_SID}"|grep -v  egrep| awk '{sum +=$10} END  ...

http://www.oracle-base.com/  找不到文章了

回复 只看该作者 道具 举报

12#
发表于 2014-10-10 15:53:31
ps:

ps -elf|egrep "oracle${ORACLE_SID} |ora_.*${ORACLE_SID}"|grep -v  egrep| awk '{sum +=$10} END {print sum/1024}'

这个脚本是谁写的?

回复 只看该作者 道具 举报

11#
发表于 2014-10-10 15:48:54
$ svmon -G
               size       inuse        free         pin     virtual   mmode
memory     14942208    10902975     4039233     2837517     8164321     Ded


free 的内存 = 4039233      * 4k = 大约15g ,并不少啊

               work        pers        clnt       other
pin         9156.83           0      142.38     1786.00
in use     31893.49           0    10698.01


client 即 fs cache之类的内存大约 11g ,此外 AIX kernel也要占用一定内存


回复 只看该作者 道具 举报

10#
发表于 2014-10-10 15:40:35
vmstat 数据

vmstat.jpg (43.51 KB, 下载次数: 417)

vmstat

vmstat

回复 只看该作者 道具 举报

9#
发表于 2014-10-10 15:29:53
Maclean Liu(刘相兵 发表于 2014-10-10 13:49
$ svmon -U oracle
===============================================================================
Us ...

其中PGA 等非共享内存为 1538MB 左右 怎么算的?

vmstat  看到剩余内存很少了啊  那怎么看是什么用了啊 ?

$ ps -elf|egrep "oracle${ORACLE_SID} |ora_.*${ORACLE_SID}"|grep -v  egrep| awk '{sum +=$10} END {print sum/1024}'
32379.6

这里是32g 这个怎么理解??

回复 只看该作者 道具 举报

8#
发表于 2014-10-10 15:12:21
Maclean Liu(刘相兵 发表于 2014-10-10 13:54
如上所述 SHARED segments共享内存使用为 4155494    *4 k =16232MB=15.8G 可以视为SGA , 这里SGA并没有大 ...

总内存是58g  剩余内存只有11g  sga 用去15 g   那是PGA用去了   ???
要怎么限制呀?

回复 只看该作者 道具 举报

7#
发表于 2014-10-10 13:54:34
如上所述 SHARED segments共享内存使用为 4155494    *4 k =16232MB=15.8G 可以视为SGA , 这里SGA并没有大幅超过 sga_max_size  

回复 只看该作者 道具 举报

6#
发表于 2014-10-10 13:49:31
$ svmon -U oracle
===============================================================================
User                                 Inuse      Pin     Pgsp  Virtual
oracle                             4562652    52311        0  4349959



oracle 用户实际使用内存

4562652  * 4k= 17822 MB

pin 住的内存 52311  * 4k = 204MB

其中PGA 等非共享内存为 1538MB 左右




SHARED segments                      Inuse      Pin     Pgsp  Virtual
                                   4155494    31568        0  4022489

     PageSize                Inuse        Pin       Pgsp    Virtual
     s    4 KB              134934          0          0       1929
     m   64 KB              251285       1973          0     251285

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
  32cfb2        10 clnt text data BSS heap,          s  73443     0    -       -


SHARED segments共享内存使用为 4155494    *4 k =16232MB=15.8G 可以视为SGA


1538+16232+51MB(SYSTEM) 约等于17821MB 即oracle用户使用的内存。



回复 只看该作者 道具 举报

5#
发表于 2014-10-10 12:31:30
Maclean Liu(刘相兵 发表于 2014-10-9 19:33
ps vg|grep ora|awk '{sum=sum+$7-$10} END {print sum/1024}'

svmon -G

SQL> select sum(value) / 1024 / 1024 as pga_m
  2    from v$pgastat
  3   where name in ('maximum PGA allocated', 'aggregate PGA target parameter',
  4          'aggregate PGA auto target');

     PGA_M
----------
7563.55664

Executed in 0.031 seconds
SQL> select sum(value) / 1024 / 1024 as sga_m from v$sga;

     SGA_M
----------
15291.4179

Executed in 0.015 seconds
SQL> select *
  2    from v$sga_dynamic_free_memory;

CURRENT_SIZE
------------
           0

Executed in 0.016 seconds
$ps vg|grep ora|awk '{sum=sum+$7-$10} END {print sum/1024}'
3634.11

$ ps -elf|egrep "oracle${ORACLE_SID} |ora_.*${ORACLE_SID}"|grep -v  egrep| awk '{sum +=$10} END {print sum/1024}'
32379.6

$ps -elf|egrep "oracle${ORACLE_SID} |ora_.*${ORACLE_SID}"|grep -v  egrep| sort -nr +9|head
  240001 A   oracle 29491796        1   0  60 20 75eff5590 240452            Dec 01      -  3:23 ora_arc3_yjdlj1
  240001 A   oracle 18284910        1   0  60 20 ad88a590 240452            Dec 01      -  3:19 ora_arc0_yjdlj1
  240001 A   oracle 21823740        1   0  60 20 6adbea590 240448            Dec 01      -  3:27 ora_arc1_yjdlj1
  240103 A   oracle 25362864        1   1  39 -- 842b04590 223980            Dec 01      - 1545:32 ora_lms0_yjdlj1
  240103 A   oracle 21823964        1   0  39 -- 16e896590 223972            Dec 01      - 1581:26 ora_lms2_yjdlj1
  240103 A   oracle 24641990        1   0  39 -- 71ebf1590 223960            Dec 01      - 1539:25 ora_lms1_yjdlj1
  240001 A   oracle 31982020        1   0  60 20 48f8c8590 219260            Dec 01      - 2101:54 ora_dia0_yjdlj1
  240001 A   oracle 27787902        1   0  60 20 79d7f9590 215284            Dec 01      - 103:08 ora_lgwr_yjdlj1
  240001 A   oracle 36176308        1   0  60 20 19f999590 215260            Dec 01      -  6:33 ora_arc2_yjdlj1
  240001 A   oracle 23199894        1   0  60 20 4cedcc590 209104            Dec 01      - 31:40 ora_dbw0_yjdlj1

回复 只看该作者 道具 举报

4#
发表于 2014-10-10 09:53:21
Maclean Liu(刘相兵 发表于 2014-10-9 19:33
ps vg|grep ora|awk '{sum=sum+$7-$10} END {print sum/1024}'

svmon -G

已经上传

回复 只看该作者 道具 举报

3#
发表于 2014-10-10 09:52:56
请帮分析 谢谢

support.txt

157.05 KB, 阅读权限: 70, 下载次数: 2

回复 只看该作者 道具 举报

2#
发表于 2014-10-9 19:33:38
ps vg|grep ora|awk '{sum=sum+$7-$10} END {print sum/1024}'

svmon -G
svmon -U oracle
svmon -U grid

svmon -Put 10 列出内存前10 的进程
svmon -Sut 10 列出前10的内存segment
svmon -P $(ps -elf | egrep " ora_smon_${ORACLE_SID} " | grep -v egrep | awk '{print $4}') | grep shmat
svmon -O unit=MB

ls -al $ORACLE_HOME/bin/oracle >> /tmp/support.txt
whoami >> /tmp/support.txt
ulimit -a >> /tmp/support.txt
svmon -O unit=MB >> /tmp/support.txt
/usr/sbin/lsps -a >> /tmp/support.txt
/usr/sbin/lsattr -HE -l sys0 -a realmem >> /tmp/support.txt
ipcs -m >> /tmp/support.txt



select name, value/1024/1024 as Mbytes from v$pgastat
where name in ('maximum PGA allocated','aggregate PGA target parameter','aggregate PGA auto target');


select sum(value)/1024/1024 as Mbytes from v$sga;
select current_size/1024/1024 Mbytes from V$SGA_DYNAMIC_FREE_MEMORY;
ipcs -mb

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-21 06:05 , Processed in 0.057894 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569