(原创)oracle相关内核参数及信号量详解
kernel.shmmni 参数是控制共享内存段总数量
kernel.shmall 参数是控制共享内存页数,是全部允许使用的共享内存总量
shmall=shmmax/pagesize
( getconf PAGE_SIZE ) 。
kernel.shmmax 是单个共享内存段允许使用的最大值
shmmax 设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会
导致需要创建多个共享内存段,这样可能导致系统性能的下降
一般设置shmmax >=SGA
英文原文:
SHMMAX Available physical memory Defines the maximum allowable size
of one shared memory segment. The SHMMAX setting should be large enough
to hold the entire SGA in one shared memory segment. A low setting can
cause creation of multiple shared memory segments which may lead to
performance degradation
可以使用 ipcs -l 看结果。ipcs -u 可以看到实际使用的情况
------ Shared Memory Limits --------
max number of segments = 4096 // SHMMNI
max seg size (kbytes) = 32768 // SHMMAX
max total shared memory (kbytes) = 8388608 // SHMALL
min seg size (bytes) = 1
------ Semaphore Limits --------
max number of arrays = 128 // SEMMNI可被创建的信号集的数目
max semaphores per array = 250 // SEMMSL每个信号集允许的最大信号量数量
max semaphores system wide = 32000 // SEMMNS = SEMMSL* SEMMNI系统范围的最大信号量数量
max ops per semop call = 32 // SEMOPM每个信号量支持的最大操作数
semaphore max value = 32767
------ Messages: Limits --------
max queues system wide = 1024 // MSGMNI 整个系统的最大数量的消息队列
max size of message (bytes) = 65536 // MSGMAX 每个消息的最大长度(表示从一个进程发送到另一个进程的消息的最大长度,进程间的消息传递是在内核的内存中进行)
default max size of queue (bytes) = 65536 // MSGMNB 每个消息队列的最大字节限制
#kernel.sem=<semmsl> <semmni>*<semmsl> <semopm> <semmni>
kernel.sem=250 32000 100 128
net.core.rmem_max — 最大的TCP数据接收缓冲区大小(单位字节)
net.core.rmem_default — 默认的TCP数据接收缓冲区大小(单位字节)
net.core.wmem_max — 最大的TCP数据发送缓冲区大小(单位字节)
net.core.wmem_default — 默认的TCP数据发送缓冲区大小(单位字节)
fs.file-max 系统所有进程一共可以打开的文件数量
fs.aio-max-nr 所允许的并发请求的最大个数
net.ipv4.ip_local_port_range 表示应用程序可使用的IPv4端口范围