坚者如磐石虽岁月交替而不移 忍者如柔练虽困苦艰辛而不摧 坚忍者刚柔相济百折不回 持之以恒也

内存都去哪了?

上一篇 / 下一篇  2008-06-08 14:54:12 / 个人分类:理论文章

查看( 9 ) / 评论( 17 )
os:linux
oracle:9207
说明:此服务器只只有跑ORACLE。
top后如下:
top - 14:59:14 up 17 days,  6:51,  1 user,  load average: 3.82, 3.03, 2.75
Tasks: 319 total,   2 running, 317 sleeping,   0 stopped,   0 zombie
Cpu(s): 18.0% us,  2.2% sy,  0.0% ni, 68.7% id, 10.5% wa,  0.1% hi,  0.6% si
Mem:   4033828k total,  4017516k used,   16312k free,     8384k buffers
Swap:  4096564k total,    39108k used,  4057456k free,  2785368k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
7072 oracle    16   0 1970m 989m 988m R   81 25.1  26:33.67 oracle
3635 oracle    15   0 1972m 739m 737m S   13 18.8  15:18.18 oracle
7375 oracle    16   0 1971m 220m 218m S   11  5.6   0:07.85 oracle
4307 oracle    16   0 1972m 790m 787m S    8 20.1   2:52.30 oracle
7379 oracle    15   0 1970m 303m 302m S    8  7.7   0:05.39 oracle

想知道红色部分内存都被分配到哪去了?

大伙给我说说。最好详细点。
先谢谢!

TAG:

五“宅”一生发布于2008-03-18 21:48:55
把你的SGA和PGA的大小贴出来看看。
haorman zuohao_lu 发布于2008-03-18 21:54:15
SQL> show sga

Total System Global Area 1967099104 bytes
Fixed Size                   744672 bytes
Variable Size             486539264 bytes
Database Buffers         1476395008 bytes
Redo Buffers                3420160 bytes
haorman zuohao_lu 发布于2008-03-18 21:55:27
现在不在办公室 PGA还不知道。
haorman zuohao_lu 发布于2008-03-18 22:04:12
除了SGA。PGA外还有其它吗?
一亩三分西瓜地 BTxigua 发布于2008-03-18 22:10:11
你的内存占用主要是3块(当然,如果有比较大的应用,那就不只以下3块):
1、sga的占用,可以用ipcs -a来查看共享内存的分配
2、pga连接进程占用。
3、操作系统缓存
haorman zuohao_lu 发布于2008-03-18 22:12:47
2,3点也帮忙说详细点。如何查看。多谢!
haorman zuohao_lu 发布于2008-03-19 08:38:46
up
rollingpig的个人空间 rollingpig 发布于2008-03-19 08:44:05
看起来由可能是sort/hash_area)size设得太大
cugshomi发布于2008-03-19 09:42:56
正常啊 你的sga约2G 然后内存被cache了2G 还有操作系统要用的一些内存 用了约4G是对的 没问题 cache的大
cugshomi发布于2008-03-19 09:45:07

QUOTE:

原帖由 zuohao_lu 于 2008-3-18 21:36 发表
os:linux
oracle:9207
说明:此服务器只只有跑ORACLE。
top后如下:
top - 14:59:14 up 17 days,  6:51,  1 user,  load average: 3.82, 3.03, 2.75
Tasks: 319 total,   2 running, 317 sleeping,   0 stopped,   0 zombie
Cpu(s): 18.0% us,  2.2% sy,  0.0% ni, 68.7% id, 10.5% wa,  0.1% hi,  0.6% si
Mem:   4033828k total,  4017516k used,    16312k free,     8384k buffers
Swap:  4096564k total,    39108k used,  4057456k free,  2785368k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
7072 oracle    16   0 1970m 989m 988m R   81 25.1  26:33.67 oracle
3635 oracle    15   0 1972m 739m 737m S   13 18.8  15:18.18 oracle
7375 oracle    16   0 1971m 220m 218m S   11  5.6   0:07.85 oracle
4307 oracle    16   0 1972m 790m 787m S    8 20.1   2:52.30 oracle
7379 oracle    15   0 1970m 303m 302m S    8  7.7   0:05.39 oracle

想知道红色部分内存都被分配到哪去了?

大伙给我说说。最好详细点。
先谢谢!
top看到的mem和swap两行 其实swap那行的cache是指mem的,不信你可以free看一下
haorman zuohao_lu 发布于2008-03-19 09:58:35

QUOTE:

原帖由 rollingpig 于 2008-3-19 08:44 发表
看起来由可能是sort/hash_area)size设得太大
SQL> show parameter pga;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 524288000
SQL> show parameter WORKAREA_SIZE_POLICY;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
workarea_size_policy                 string      AUTO
haorman zuohao_lu 发布于2008-03-19 10:01:08

QUOTE:

原帖由 cugshomi 于 2008-3-19 09:45 发表


top看到的mem和swap两行 其实swap那行的cache是指mem的,不信你可以free看一下
多谢
[root@Q1WIP001 ~]# free
             total       used       free     shared    buffers     cached
Mem:       4033828    4012188      21640          0      17728    2850444
-/+ buffers/cache:    1144016    2889812
Swap:      4096564      39216    4057348
cugshomi发布于2008-03-19 10:04:23
这就是linux的机制 cache出暂时不被使用的页 等需要使用的时候就不需要重新从磁盘调度了 加快了系统响应速度 其实你的系统还是很闲的 呵呵
haorman zuohao_lu 发布于2008-03-19 10:07:21
多谢cugshomi .
现在有点懂了.
一亩三分西瓜地 BTxigua 发布于2008-03-19 10:45:25
回复 #7 zuohao_lu 的帖子
你的系统中:
1、sga的大小是 1967099104 bytes,差不多1.8G
2、另外一部分是oracle连接所占用的,这一部分就跟你的pga设置相关了。可以根据V$PGASTAT视图来查看总共使用的pga大小。
select value/1024/1024 as "total_mem(M)" from V$PGASTAT where name = 'total PGA inuse';
3、操作系统的页面缓存的大小,可以看top中的2785368k cached,这里是2.5G。比如你打开一个文件,进行编辑,复制一个文件等等。其实这里主要要确定文件型页面占用的内存大小,但是linux中我不知道怎么查看。

这个其实我是按照aix的来说的,我发现linux中这样计算得到的并不精确。主要在于cache的大小比较难以确定。top或者free中显示的cache是操作系统的页面缓存,里面既有文件页面,也有计算页面,所以我觉得sga或者pga中的部分内存 在cache中会被重复计算,这样得到的总大小就会超过实际的物理内存大小。
比如这里2.5G+1.8G,就已经超过总的内存4G了。
haorman zuohao_lu 发布于2008-03-19 14:47:38
多谢BTxigua !
lifewise的个人空间 lifewise 发布于2008-03-19 17:43:30
我的系统也有同样的问题,我还以为内存泄漏呢
12G内存,sga6G,可用内存最低只有100多M,不知道为什么?
[oracle@rac2 oracle]$ ipcs -sa

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x9a2493ac 65536      oracle    640        7352614912 175                     

------ Semaphore Arrays --------
key        semid      owner      perms      nsems     
0x3fda3600 360448     oracle    640        204      

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages   

[oracle@rac2 oracle]$ free
             total       used       free     shared    buffers     cached
Mem:      12035440   11680880     354560          0     239460   10032436
-/+ buffers/cache:    1408984   10626456
Swap:      4192956          0    4192956
[oracle@rac2 oracle]$
我来说两句

(可选)

日历

« 2008-10-14  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 2527
  • 日志数: 47
  • 建立时间: 2008-01-19
  • 更新时间: 2008-09-25

RSS订阅

Open Toolbar