甲骨文性能优化之内核的shmall和shmmax参数

  

     

  

=配置了最大的内存段的大小——比;      

  
  

  SHMMAX参数:Linux进程可以分配的单独共享内存段的最大值。一般设置为内存总大小的一半。这个值的设置应该大于SGA_MAX_TARGET或MEMORY_MAX_TARGET的值,因此对于安装甲骨文数据库的系统,SHMMAX的值应该比内存的二分之一大一些。   

     

  数最小的内存段的大小。   

  

  SHMMNI=整个系统的内存段的总个数。设置系统级最大共享内存段数量.Oracle10g推荐最小值为4096,可以适当比4096年增加一些。   

  

  SHMSEG=每个进程可以使用的内存段的最大个数   

  

=是全部允许使用的共享内存大小,shmmax是单个段允许使用的大小。这两个可以设置为内存的90%,例如16 g内存,16 * 1024 * 1024 * 1024 * 90%=15461882265,shmall的大小为15461882265/4k (getconf页大小可得到)=3774873。   

  
  

  shmall设置共享内存总页数。这个值太小有可能导致数据库启动报错。很多人调整系统内核参数的时候只关注SHMMAX参数,而忽略了shmall参数的设置。   

     

  -   

  

           

  
  

  信号灯信号量是进程或线程间访问共享内存时提供同步的计数器。   

     

  SEMMSL=设置每个信号灯组中信号灯最大数量,      对。于系统中存在大量并发连接的系统,推荐将这个值设置为      。   

  

  SEMMNI=设置系统中信号灯组的最大数量.Oracle10g和11 g的推荐值为142。   

  

  SEMMNS=设置系统中信号灯的最大数量。操作系统在分配信号灯时不会超过至少(SEMMNS,      )。事实上,如果SEMMNS的值超过了SEMMSL * SEMMNI是非法的,      .Oracle推荐SEMMNS的设置      假,如数据库的过程参数设置为600,则SEMMNS的设置应为:   

  <前>   完成,select (600 + 10) * 142,得到双重;(600 + 10)* 142 - - - - - - - - - - - -   ,,,,,8662012345   之前   

  SEMOPM参数:设置每次系统调用可以同时执行的最大信号灯操作的数量。由于一个信号灯组最多拥有SEMMSL个信号灯,因此有推荐将SEMOPM设置为SEMMSL的值.Oracle验证的10.2和11.1的SEMOPM的配置为100。   

  

     

  <前>   #,cat /proc/sys/kernel/sem250  32000, 100, 12812   之前   

  对应的4个值从左到右分别为SEMMSL, SEMMNS, SEMOPM和SEMMNI   

  

  -   

  

           

  

  kernel.shmmax=15461882265,   
  kernel.shmall=3774873,   
  kernel.msgmax=65535,   
  kernel.msgmnb=65535   

  

  执行,      

  

  可以使用,      ,看结果,ipc - u可以看到实际使用的情况   

  

  
  

  

  本文转自:      https://blog.csdn.net/sunansheng/article/details/51889044         

  

  感谢原作者   

甲骨文性能优化之内核的shmall和shmmax参数