sysctl内核参数解析

sysctl内核参数解析

kernel.参数

kernel.shmall = 2097152   

## 1> 表示所有内存大小。可以分配的所有共享内存段的总和最大值。(以页为单位)

## 2> 该参数以页为单位,linux共享内存页一般为4k,oracle默认参数是2097152,如果系统内存大于该参数,才考虑调整

## 3> 如何计算:2097152*4k/1024 = 8192M =8G

## 4> 如何设置该值:推荐设置为物理内存大小除以分页大小。 获取分页大小   getconf PAGE_SIZE     既4096 =4k)

## 5> 假如linux系统内存为16G,如何设置shmall参数:16G *1024*1024/4K = 4194304

## 6> 查看当前设置:cat /proc/sys/kernel/shmall

kernel.shmmax = 1052045312   

## 1> 表示最大共享内存,如果小的话可以按情况修改。一般为物理内存的一半。

## 2> 这个值的设置应该大于SGA_MAX_TARGET或MEMORY_MAX_TARGET的值。因此对于安装oracle数据库的系统,shammax的值应该比内存的1/2大一些

## 3> 如何计算:1052045312/1024/1024=1003.30859375M   不到1G

## 4> 查看系统内存及当前shmmax设置:

      grep MemTotal /proc/meminfo

      cat /proc/sys/kernel/shmmax

  

kernel.shmmni = 4096   

## 1> 内核参数是共享内存段的最大数量(注意这个参数不是shmmin,是shmmni, shmmin 表示内存段最小大小) shmmni 缺省值4096 。

## 2> 该值也是系统中可以启动oracle实例的最大数量。通常不需要更改

## 3> 查看当前设置:cat /proc/sys/kernel/shmmni

kernel.sem = 250 32000 100 128   

##  表示设置的信号量。4个参数依次是

      SEMMSL:每个用户拥有信号量最大数

      SEMMNS:系统信号量最大数

      SEMOPM:每次semopm系统调用操作数

      SEMMNI:系统辛苦量集数最大数。  

    这4个参数为固定内容大小。

## 查看当前设置:cat /proc/sys/kernel/sem

3.2 net.参数

net.ipv4.ip_local_port_range = 9000 65500    ## 专用服务器模式下与用户进程通信时分配给用户的端口区间 

net.core.rmem_default = 262144    ## 默认的接收缓冲区大小 

net.core.rmem_max = 4194304    ## 接收缓冲区的最大值 

net.core.wmem_default = 262144    ## 默认的发送缓冲区大小 

net.core.wmem_max = 1048576    ## 发送缓冲区的最大值

## 如何查看当前设置:

cat /proc/sys/net/ipv4/ip_local_port_range

cat /proc/sys/net/core/rmem_default

cat /proc/sys/net/core/rmem_max

cat /proc/sys/net/core/wmem_default

cat /proc/sys/net/core/wmem_max 

3.3 fs.参数

fs.aio-max-nr = 1048576    ## 指的是同时可以拥有的异步IO请求数目

                            ## 计算:1048576/1024 =1024K 

fs.file-max = 6815744    ## 表示一个进程可以打开的文件句柄的最大数量。文件句柄设置代表linux系统中可以打开的文件数量

原文地址:https://www.cnblogs.com/zougang/p/9173027.html