看如下案例,sga大小为10G,而包含key为0x00000000的关于sga的segment有好多个,根据oracle官方文档,
SHMMAX Available physical memory Defines the maximum allowable size of one shared memory segment.
The SHMMAX setting should be large enough to hold the entire SGA in one shared memory segment. A low setting can cause creation of multiple shared memory segments which may lead to performance degradation. 也就是说,单个segment的应该大于sga的大小,这样才不会导致性能问题
SQL> show parameter sga
NAME TYPE VALUE
------------------------------------ -------------------------------- --------------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 8G
sga_target big integer 8G
[oracle@ty1]$ipcs -a
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 1474562 oracle 640 2147483648 39
0x00000000 1507331 oracle 640 2147483648 39
0x00000000 1540100 oracle 640 2147483648 39
tune2fs 1.39 (29-May-2006)
Block size: 1024
kernel.shmall = 2097152 则一共是8G的共享内存总量
kernel.shmall:共享内存总量,以页为单位。
总的来说,这个参数和你具体硬件关系不太大,只是大于8G的时候调整到合适你的内存容量大小,小于8G就不用了
kernel.shmmax 指一个内存段最大可用内存。
如果服务器内存超过8G,可设置
kernel.shmall = 4194304
kernel.shmmax 不小于sga_max_size 即可。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8410760/viewspace-732786/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8410760/viewspace-732786/