pre_page_sga参数总结

简介:     oracle实例启动时,只会在物理内存中载入sga的各个内存的最小的大小(以粒度为单位),而剩余的sga只会在虚拟内存中分配。只有当进程touch到相应的page时,才会置换到物理内存中。

    oracle实例启动时,只会在物理内存中载入sga的各个内存的最小的大小(以粒度为单位),而剩余的sga只会在虚拟内存中分配。只有当进程touch到相应的page时,才会置换到物理内存中。但是,我们也希望oracle在启动后,所有的sga全部分配到物理内存上面,这时我们可以把这个参数设置成true(默认值是false)。

    当参数设置为TRUE时,不仅在实例启动时,需要touch所有的SGA页,并且由于每个oracle进程都会访问SGA区,所以每当一个新进程启动时(在Dedicated Server方式中,每个会话都会启动一个Oracle进程),都会touch一遍该进程需要访问的所有页。因此,每个进程的启动时间页增长了。所以,这个参数的设置需要根据系统的应用情况来设定。在这种情况下,进程启动时间的长短就由系统内存的页的大小来决定了。例如,SGA大小为100M,当页的大小为4K时,进程启动时需要访问100000/4=25000个页,而如果页大小为4M 时,进程只需要访问100/4=25个页。页的大小是由操作系统指定的,并且是无法修改的。 但是,要记住一点:PRE_PAGA_SGA只是在启动时将物理内存分配给SGA,但并不能保证系统在以后的运行过程不会将 SGA 中的某些页置换到虚拟内存中,也就是说,尽管设置了这个参数,还是可能出现 Page In/Out。如果需要保障SGA不被换出,就需要由另外一个参数LOCK_SGA 来控制了。

  lock_sga这个参数的默认值是false,为了保证sga被锁定在物理内存中,而不必页入/页出,可以把这个参数设置为true。这时就可以将全部的sga锁定在物理内存中了。但是有的系统不支持内存锁定,这时这个参数就无效了。

参考:

http://space.itpub.net/13805349/viewspace-232342

目录
相关文章
|
7月前
369-HI-R-M-F-E-H-E GE MULTLIN
369-HI-R-M-F-E-H-E GE MULTLIN
56 1
369-HI-R-M-F-E-H-E GE MULTLIN
|
存储 缓存 算法
我们还需要Page Cache么?
作者:齐江 杨艇艇 马涛
1034 0
|
JavaScript 前端开发
|
缓存 Linux 存储
从free到page cache
Free 我们经常用free查看服务器的内存使用情况,而free中的输出却有些让人困惑,如下:           图1-1 先看看各个数字的意义以及如何计算得到: free命令输出的第二行(Mem):这行分别显示了物理内存的总量(total)、已使用的 (used)、空闲的(free)、共享的(shared)、buffer(buffer大小)、 cache(cache的大小)的内存。
864 0
|
存储 数据库 SQL

热门文章

最新文章