ITPub博客

首页 > 数据库 > Oracle > 【Linux】kernel.shmmax和shmall设置

【Linux】kernel.shmmax和shmall设置

原创 Oracle 作者:恩强Boy 时间:2020-08-12 09:18:30 0 删除 编辑

1.  kernel.shmmax

是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA , 设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及 ServerProcess 创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低 ( 在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响 ) ,但是其他时候都不会有影响。

官方建议值:

32 linux 系统:可取最大值为 4GB 4294967296bytes -1byte ,即 4294967295 。建议值为多于内存的一半,所以如果是 32 为系统,一般可取值为 4294967295 32 位系统对 SGA 大小有限制,所以 SGA 肯定可以包含在单个共享内存段中。

64 linux 系统:可取的最大值为物理内存值 -1byte ,建议值为多于物理内存的一半,一般取值大于 SGA_MAX_SIZE 即可,可以取物理内存 -1byte

 

内存为8G 时, 该值为 8 *1024*1024*1024-1 = 8589934591

内存为12G 时,该值为 12*1024*1024*1024-1 = 12884901887

内存为16G 时,该值为 16*1024*1024*1024-1 = 17179869183

内存为32G 时,该值为 32*1024*1024*1024-1 = 34359738367

内存为64G 时,该值为 64*1024*1024*1024-1 = 68719476735

内存为128G 时,该值为 128*1024*1024*1024-1 = 137438953471

内存为 256 G 时,该值为 256 *1024*1024*1024-1 =   274877906943

2.  kernel.shmall

该参数控制可以使用的共享内存的总页数。Linux 共享内存页大小为 4KB, 共享内存段的大小都是共享内存页大小的整数倍。

一个共享内存段的最大大小是16G ,那么需要共享内存页数是 16GB/4KB==4194304 (页),

 

当内存为 8G 时, kernel.shmall = 2097152

当内存为12G 时, kernel.shmall = 3145728

当内存为16G 时, kernel.shmall = 4194304

当内次为32G 时, kernel.shmall = 8388608

当内存为64G 时, kernel.shmall = 16777216

当内存为128G 时, kernel.shmall = 33554432

当内存为 256 G 时, kernel.shmall = 67108864


 

---- end ----


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

请登录后发表评论 登录
全部评论
勤奋,专注和练习

注册时间:2018-04-03

  • 博文量
    77
  • 访问量
    143782