免费注册 查看新帖 |

Chinaunix

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

难题求助:Oracle是怎么驻留内存和交换分区的? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-22 16:15 |只看该作者 |倒序浏览
碰到一个难题:发现Oracle启动以后,在系统物理内存还有空闲时,系统的交换分区也被Oracle占用了许多,请问Oracle使用系统内存的机制究竟是怎么样的?
OS: Solaris8
Oracle 9.2.0.1
下面用的是top工具抓的值:

Shutdown:  Memory: 4096M real, 2838M free, 693M swap in use, 10G swap free
Startup:      Memory: 4096M real, 1227M free, 2332M swap in use, 8873M swap free


Oracle running need memory = ( 2838 - 1227 ) + ( 2332 - 693) = 3250 M

                                                     =1611M             = 1639M
也就是Oracle启动后,不仅占用了物理内存的1.6G,还使用了Swap的1.6G。可物理内存还有1.2G空间?Oracle为什么不用它们呢?

论坛徽章:
0
2 [报告]
发表于 2005-08-22 17:17 |只看该作者

难题求助:Oracle是怎么驻留内存和交换分区的?

在sqlplus运行
show SGA

show parameters pool_size

贴出结果

论坛徽章:
0
3 [报告]
发表于 2005-08-22 17:32 |只看该作者

难题求助:Oracle是怎么驻留内存和交换分区的?

here you are:

SQL>; show sga

Total System Global Area 1631554480 bytes
Fixed Size                   732080 bytes
Variable Size             553648128 bytes
Database Buffers         1073741824 bytes
Redo Buffers                3432448 bytes
SQL>;
SQL>; show parameters pool_size;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
global_context_pool_size             string
java_pool_size                       big integer 117440512
large_pool_size                      big integer 83886080
olap_page_pool_size                  integer     33554432
shared_pool_size                     big integer 318767104
SQL>;

论坛徽章:
0
4 [报告]
发表于 2005-08-23 10:04 |只看该作者

难题求助:Oracle是怎么驻留内存和交换分区的?

hehe
这个问题在Solaris 版肯定很容易得到解决。

估计是你的系统起用了Crash dump功能(当系统突然crash时,系统会保留部分重要的memory的dump在DISK上,以做trouble shooting的分析)。所以,基本上,当allocate 了 memory的时候,同时会在swap区保存一个memory的近似镜象,以用作Crash dump用。

所以,你的Oracle 实例用了1.6G的memory.相应的在SWAP区也就多用1.6G

上面的术语并不准确,只是用我的理解来说的。具体情况可以去Solaris版问问。

论坛徽章:
0
5 [报告]
发表于 2005-08-23 11:14 |只看该作者

难题求助:Oracle是怎么驻留内存和交换分区的?

非常感谢。很可能就是这个原因。
如果Solaris默认是这样工作的话,那么在给客户做基于Solaris的Oracle部署方案时,这个因素是非常重要的,必须考虑进去。

再问一个,当Oracle instance新增一个session时,它需要新增占用系统多少内存资源? 和下面的参数配置有没有关系
SQL>; show parameters pga;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 25165824

论坛徽章:
0
6 [报告]
发表于 2005-08-23 11:37 |只看该作者

难题求助:Oracle是怎么驻留内存和交换分区的?

刚刚研究了一下Solaris的core dump管理方法,发现和上面的这个问题可能没有关系。Solaris默认的core配置为:
#coreadm
     global core file pattern:
       init core file pattern: core
            global core dumps: disabled
       per-process core dumps: enabled
      global setid core dumps: disabled
per-process setid core dumps: disabled
     global core dump logging: disabled

也即应用发生core时,系统全部都会为它生成core文件,但Solaris并不会规定应用自身的内存驻留方法。
请老大再查查,,,
我好像看到过,oracle刚启动时,有很多资源都还没有load进物理内存中,具体如何,不是很确定。

论坛徽章:
0
7 [报告]
发表于 2005-08-24 09:41 |只看该作者

难题求助:Oracle是怎么驻留内存和交换分区的?

自己顶一下

论坛徽章:
0
8 [报告]
发表于 2005-08-24 15:21 |只看该作者

难题求助:Oracle是怎么驻留内存和交换分区的?

原帖由 "zza" 发表:
非常感谢。很可能就是这个原因。
如果Solaris默认是这样工作的话,那么在给客户做基于Solaris的Oracle部署方案时,这个因素是非常重要的,必须考虑进去。

再问一个,当Oracle instance新增一个session时,它需要..........


增加一个session
会增加如下几段memory

可执行文件及相关lib的memory 以及
pga

其中pga又包括session stack的一些信息和sort_area,hash_area等
在9i中,如果workarea_size_policy设为auto .

sort_area,hash_area部分会根据pga_aggregate_target    来分配。 主要规则有:
1。动态分配,在session需要时才分配sort_area,hash_area,并且在session不需要时会回收给OS

2.所有session的sort_area,hash_area总memory量不能超过pga_aggregate_target

3。单个session的sort_area,hash_area memory不超过pga_aggregate_target 的 5%



至于core dump的问题,正如我一开始所说的,Solaris版应该能给你更为满意的答案(我是DBA,不是SA)

论坛徽章:
0
9 [报告]
发表于 2005-08-24 15:24 |只看该作者

难题求助:Oracle是怎么驻留内存和交换分区的?

或者你做一下测试,以不同的SGA (db_cache_size , shared_pool_size) 启动db,看看是否SWAP增加了physical memory差不多的使用量

论坛徽章:
0
10 [报告]
发表于 2005-08-24 16:05 |只看该作者

难题求助:Oracle是怎么驻留内存和交换分区的?

非常感谢,我试一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP