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


    工作当中遇到oracle运行时CPU占用率达到90%以上,调小以下参数值后恢复正常。

    fs.file-max = 65536      

    net.core.rmem_default=262144

    net.core.rmem_max=262144

    net.core.wmem_default=262144

    net.core.wmem_max=262144

    在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析。

    Linux安装文档中给出的最小值:

    fs.aio-max-nr = 1048576

    fs.file-max = 6815744

    kernel.shmall = 2097152

    kernel.shmmax = 4294967295

    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 = 1048586

    各参数详解:

    kernel.shmmax

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

    官方建议值:

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

    64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。 

    kernel.shmall

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

    kernel.shmall = 2097152  就是 2097152*4k/1024/1024 = 8G 就是说可用共享内存一共 8G

    kernel.shmmni

    该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。

    fs.file-max

    该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。

    fs.aio-max-nr

    此参数限制并发未完成的请求,应该设置避免I/O子系统故障。

    kernel.sem

    以kernel.sem = 250 32000 100 128为例:

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

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

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

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

    net.ipv4.ip_local_port_range

    表示应用程序可使用的IPv4端口范围。

    net.core.rmem_default

    表示套接字接收缓冲区大小的缺省值。

    net.core.rmem_max

    表示套接字接收缓冲区大小的最大值。

    net.core.wmem_default

    表示套接字发送缓冲区大小的缺省值。

    net.core.wmem_max

    表示套接字发送缓冲区大小的最大值。

  • 相关阅读:
    java操作生成jar包 和写入jar包
    jboss配置jndi连接池
    windows 域的LDAP查询相关举例
    LDAP error Code 及解决方法
    HDU 6417
    CF1299D Around the World
    codechef Chef and The Colored Grid
    Educational Codeforces Round 82 (Rated for Div. 2)
    CF1237F Balanced Domino Placements
    CF1254E Send Tree to Charlie
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/3805850.html
Copyright © 2020-2023  润新知