进程间通信(IPC) 的限制

239 篇文章 2 订阅

今天从IBM网站上找到了IPC的限制文档,很全的。记录在这里,以备后查。

操作系统:AIX

下表总结了 IPC 机制的信号量限制。

信号量4.3.04.3.14.3.25.15.25.3
32 位内核的信号量标识的最大数量40964096131072131072131072131072
64 位内核的信号量标识的最大数量409640961310721310721310721048576
每个信号量标识的最大信号量655356553565535655356553565535
每个 semop 调用的最大操作数量102410241024102410241024
每个进程的最大撤销条目数量102410241024102410241024
撤销结构的大小(B)820882088208820882088208
信号量的最大值327673276732767327673276732767
退出时调整的最大值163841638416384163841638416384

下表总结了 IPC 机制的消息队列限制。

消息队列4.3.04.3.14.3.25.15.25.3
最大消息大小4 MB4 MB4 MB4 MB4 MB4 MB
队列上的最大字节数4 MB4 MB4 MB4 MB4 MB4 MB
32 位内核的消息队列标识的最大数量40964096131072131072131072131072
64 位内核的消息队列标识的最大数量409640961310721310721310721048576
每个队列标识的最大消息数量524288524288524288524288524288524288

下表总结了 IPC 机制的共享内存限制。

共享内存4.3.04.3.14.3.25.15.25.3
段的最大大小(32 位进程)256 MB2 GB2 GB2 GB2 GB2 GB
32 位内核的段的最大大小(64 位进程)256 MB2 GB2 GB64 GB1 TB1 TB
64 位内核的段的最大大小(64 位进程)256 MB2 GB2 GB64 GB1 TB32 TB
段的最小大小111111
共享内存标识的最大数量(32 位内核)40964096131072131072131072131072
共享内存标识的最大数量(64 位内核)409640961310721310721310721048576
每个进程的段的最大数量(32 位进程)111111111111
每个进程的段的最大数量(64 位进程)268435456268435456268435456268435456268435456268435456
注:
对于 32 位进程,在使用扩展的  shmat 能力时,每个进程的段的最大数量只受地址空间大小的限制。

Linux内核参数 共享内存 限制的查看与设置

共享内存:

可以通过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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值