您的位置:首页 > 运维架构 > Linux

Linux内核参数-共享内存信号量semaphore设置

2011-11-17 21:18 405 查看
共享内存

可以通过ipcs -lm命令查看目前系统共享内存的参数限制:

# ipcs -lm

—— Shared Memory Limits ——–

max number of segments = 4096

max seg size (kbytes) = 1048576

max total shared memory (pages) = 2097152

min seg size (bytes) = 1

这里涉及到3个于共享内存相关的参数:SHMMAX,SHMMNI,SHMALL

SHMMAX

含义:单个共享内存段最大字节数 设置:比SGA略大 查看:cat /proc/sys/kernel/shmmax

$ cat /proc/sys/kernel/shmmax

1073741824

修改:

sysctl -w kernel.shmmax=1073741824

echo “kernel.shmmax=1073741824″ >> /etc/sysctl.conf

SHMMNI

含义:共享内存段最大个数 设置:至少4096 查看:cat /proc/sys/kernel/shmmni

# cat /proc/sys/kernel/shmmni

4096

修改:

# sysctl -w kernel.shmmni=4096

# echo “kernel.shmmni=4096″ >> /etc/sysctl.conf

SHMALL

含义:系统中共享内存页总数 设置:至少ceil(shmmax/PAGE_SIZE);ORACLE DOC 默认值:2097152*4096=8GB 查看:cat /proc/sys/kernel/shmall

$ getconf PAGE_SIZE

4096

# cat /proc/sys/kernel/shmall

2097152

修改:

# sysctl -w kernel.shmall=2097152

# echo “kernel.shmall=2097152″ >> /etc/sysctl.conf

信号量:

当前系统信号量限制:

oracle@lab-rd-01:~$ ipcs -ls

—— Semaphore Limits ——–

max number of arrays = 128

max semaphores per array = 250

max semaphores system wide = 32000

max ops per semop call = 100

SEMMSL

含义:每个信号量set中信号量最大个数 设置:最小250;对于processes参数设置较大的系统建议设置为processes+10

SEMMNI

含义:linux系统信号量set最大个数 设置:最少128

SEMMNS

含义:linux系统中信号量最大个数 设置:至少32000;SEMMSL * SEMMNI

SEMOPM

含义:semop系统调用允许的信号量最大个数设置:至少100;或者等于SEMMSL

查看信号量设置:cat /proc/sys/kernel/sem

order:SEMMSL, SEMMNS, SEMOPM, SEMMNI

oracle@lab-rd-01:~$ cat /proc/sys/kernel/sem

250 32000 100 128

修改:

sysctl -w kernel.sem=”250 32000 100 128″

echo “kernel.sem=250 32000 100 128″ >> /etc/sysctl.conf

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: