linux中与Oracle有关的内核参数详解

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

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


这里,对每个参数值做个简要的解释和说明。

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

  kernel.shmmni:表示单个共享内存段的最小值,一般为4kB,即4096bit。

  kernel.shmall:该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZESGA_TARGET12G(您想设置的SGA最大大小,当然也可以是2G~14G等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G

  fs.file-max:表示文件句柄的最大数量。文件句柄表示在Linux系统中可以打开的文件数量。

    fs.aio-max-nr: 文件系统最大异步io

  ip_local_port_range:表示端口的范围,为指定的内容。

  kernel.sem:表示设置的信号量,这4个参数内容大小固定。   

       250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。

       32000是参数semmns的值,表示系统内可允许的信号量最大数目。

       100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。

       128是参数semmni的值,表示系统信号量集合总数。

  net.core.rmem_default:表示接收套接字缓冲区大小的缺省值(以字节为单位)。

  net.core.rmem_max :表示接收套接字缓冲区大小的最大值(以字节为单位)

  net.core.wmem_default:表示发送套接字缓冲区大小的缺省值(以字节为单位)。

  net.core.wmem_max:表示发送套接字缓冲区大小的最大值(以字节为单位)。

修改好内核以后,执行下面的命令使新的配置生效。


查看系统page大小

vi testPage.c 

#include<unistd.h>

#include<stdio.h>

int main()

{

    int pageSize = getpagesize();

    printf("Page size on your system = %i bytes\n", pageSize);

    return 0;

}

[root@localhost opt]# gcc -o testPage testPage.c 

[root@localhost opt]# ./testPage

Page size on your system = 4096 bytes

另一个方法是调用linux提供的一个命令:

[root@localhost ~]# getconf PAGE_SIZE

4096


你可能感兴趣的:(oracle,linux,详解,内核参数, , , , , )