Chinaunix首页 | 论坛 | 博客
  • 博客访问: 89050
  • 博文数量: 69
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 697
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-03 23:44
文章分类

全部博文(69)

文章存档

2014年(69)

我的朋友

分类: LINUX

2014-05-04 00:03:31

# ipcs -l
------ 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 = 1024                 // SEMMNI
max semaphores per array = 250              // SEMMSL
max semaphores system wide = 256000         // SEMMNS
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
共享内存:
可以通过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
SHMMIN
含义:每个共享内存段的最小字节数
SHMSEG
含义:每进程最大共享内存段数量
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
 
信号量:
当前系统信号量限制:
$ ipcs -ls
------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32(设置成100比较好)
semaphore max value = 32767
 
SEMMNI
含义:系统中信号灯组的最大数量
设置:最少128
SEMMSL
含义:每个信号灯组中信号灯最大数量
设置:最小250;对于processes参数设置较大的系统建议设置为processes+10
一套信号灯里可以有多少信号灯,对于Postgres而言应该至少是 17
SEMMNS
含义:系统中信号灯的最大数量
设置:至少32000;SEMMNI *SEMMSL
SEMOPM
含义:每次系统调用可以同时执行的最大信号灯操作的数量。由于一个信号灯组最多拥有SEMMSL个信号灯,因此有推荐将SEMOPM设置为SEMMSL的值
设置:至少100;或者等于SEMMSL
查看信号量设置:cat /proc/sys/kernel/sem
SEMVMX
信号灯的最大值(semaphore max value = 32767)
order:SEMMSL, SEMMNS, SEMOPM, SEMMNI
 
$ 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
 
ORACLE提供了sysresv工具管理共享内存以及信号量,操作系统级别可以通过ipcs管理。
 
kernel.shmall = 2097152 # 可以使用的共享内存的总量,单位:页。
kernel.shmmax = 2147483648 # 最大单个共享内存段大小。取物理内存大小的一半,单位为字节
kernel.shmmni = 4096 # 整个系统共享内存段的最大数目。
kernel.sem = 250 32000 100 128 # 每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数。
fs.file-max = 65536 # 系统中所允许的文件句柄最大数目。
net.ipv4.ip_local_port_range = 1024 65000 # 应用程序可使用的IPv4端口范围。
net.core.rmem_default = 1048576 # 套接字接收缓冲区大小的缺省值
net.core.rmem_max = 1048576 # 套接字接收缓冲区大小的最大值
net.core.wmem_default = 262144 # 套接字发送缓冲区大小的缺省值
net.core.wmem_max = 262144 # 套接字发送缓冲区大小的最大值
阅读(668) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~