ITPub博客

首页 > Linux操作系统 > Linux操作系统 > linux下的内存共享参数

linux下的内存共享参数

原创 Linux操作系统 作者:pingley 时间:2012-03-12 09:11:52 0 删除 编辑
linux下的内存共享参数
在安装oracle 数据库软件前你需要检查linux 系统的内存共享参数。
[root@zeng ~]# ls -1 /proc/sys/kernel/shm*
/proc/sys/kernel/shmall
/proc/sys/kernel/shmmax
/proc/sys/kernel/shmmni
shmmax:最大共享段大小bytes。
shmall:系统中总的可用的共享内存,按照bytes或者pages计算。
shmmni:系统中共享内存段的最大数量。
另外还有:
shmseg:一个进程可以拥有的共享段的最大数量。
shmmin:最小共享段大小bytes。
查看当前系统中分配的内存共享段。
root@zeng ~]# ipcs -m
------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x5ff1e964 229376     oracle     660        4096       0                
oracle 11gR2 在 oracle linux 6.0 安装对内存共享参数的要求:
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
注:参照的是Oracle Linux 5 Update 2 的安装要求。因为oracle 11gR2 没有针对oracle linux 6.0
的安装文档。
参看要修改的共享内存参数:
[root@zeng ~]# cat /proc/sys/kernel/shmmax         
536870912
[root@zeng ~]# cat /proc/sys/kernel/shmall
2097152
[root@zeng ~]# cat /proc/sys/kernel/shmmni
4096
和oracle 11gR2对系统内存共享的的参数要求一样,因为我已经安装了oracle11gR2.
可以使用echo、cat、sysctl -w、编辑/etc/sysctl.conf 的方式来改变内存共享参数。写进
/etc/sysctl.conf 的内核参数应该执行sysctl -p 把刚才的修改实例化为当前的内核参数。
写进/etc/sysctl.conf 的内核参数下次重启以后依然有效。
另外在修改shmmax 参数前,请先确定系统的物理内存大小。
[root@zeng ~]# cat /proc/meminfo|grep -i memtotal
MemTotal:         911564 kB
shmmax 的内存大小超过物理内存的大小是没有意义的,因为不可能分配的到那么多共享内存。
shmmax 不能太小,该值应该大于实例SGA的大小,如果该值设置的比较小会影响到数据库的
性能甚至是不能启动oracle 

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

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    169
  • 访问量
    715765