ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sga_max_size

sga_max_size

原创 Linux操作系统 作者:-Nero- 时间:2010-03-28 13:51:49 0 删除 编辑

sga_max_size     sga为实例允许使用的sga 上限,一个静态参数,是不能动态修改的.

---查看sga_max_size大小

SQL> show parameter sga_max_size;

NAME                                        TYPE              VALUE
------------------------------------ -----------          ------------------------------
sga_max_size                         big integer     172M
SQL>

---更改sga_max_size的大小


SQL> ALTER SYSTEM SET SGA_MAX_SIZE=180M SCOPE=SPFILE;

System altered.

修改sga_max_size大小,重启生效

sga内存按照颗粒度大小granule_size分配内存,如果手工分配内存大小非整数倍的granule_size,则Oracle自动凑为granule_size的整数倍,若SGA<1g granule_size=4M ,SGA>1G granule_size=8M(windows),其他操作系统granule_size=16M

现在我们查看一下SGA颗粒度的大小

SQL> select bytes from v$sgainfo where name='Granule Size';

     BYTES
----------
   4194304
 说明此Oracle SGA<1G

sga_max_size 与 shmmax 的关系

首先查看共享内存段数

[root@mj ~]# ipcs -sa

------ Shared Memory Segments --------
key                  shmid      owner      perms      bytes           nattch     status     
0x00000000 32768      gdm         600           393216          2          dest        
0x81c0f408   65537      oracle      660          184549376   20                     

------ Semaphore Arrays --------
key                semid      owner      perms      nsems    
0x0f4b2ed8 98304      oracle      660          154      

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

Shmmax 是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值,
shmmax 设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。一般来说,1-4G 的物理内存,可以直接设置shmmax 为最大物理内存即可,那么SGA 肯定在一个共享内存段中,32Bit Linux 系统物理内存大于4G 的设置为4G 即可,总之,一般设置shmmax >=SGA (32Bit 系统是否支持到1.7G 以上SGA 需要注意) 。如果是64Bit 的Linux 操作系统,shmmax 设置为大于SGA_MAX_SIZE 即可。

sga_max_size可以大于shmmax


 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23184238/viewspace-630570/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: sga_target
请登录后发表评论 登录
全部评论

注册时间:2010-01-14

  • 博文量
    16
  • 访问量
    33114