AIX系统--共享内存

本文介绍了AIX系统中关于共享内存的限制,包括不同AIX版本的最大内存大小,最小共享内存段大小,以及最大共享内存ID数量。当遇到共享内存分配失败时,应检查paging space的空闲空间,并通过`topas`、`smitty chps`、`smitty mkps`命令进行管理和调整。此外,还提到了进程可连接的共享内存段数量限制,以及如何通过设置`EXTSHM`环境变量来扩展共享内存段的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AIX系统共享内存最大值限制:

* 256M bytes before AIX 4.3.1
* 2G bytes for AIX 4.3.1 through AIX 5.1
* 64G bytes for 64-bit applications for AIX 5.1 and later
* Minimum shared-memory segment size is 1 byte.
* Maximum number of shared memory IDs is 4096 for operating system releases before AIX 4.3.2, 131072 for releases AIX

 

出现共享内存分配失败时,首先考虑是否有足够空闲空间。

AIX的共享内存从paging space中分配,物理内存小于2G时,该值是物理内存1.5倍,否则该值与物理内存相等,一般不小于2Gpaging space是分布在不同物理磁盘上的。

执行命令topas查看paging space

执行命令smitty chpssmitty mkps分别可以修改、创建paging space

 

其次,考虑进程是否加载超过11段的共享内存。

对于64位进程,同一进程可连接最多268435456个共享内存段;

对于32位进程,同一进程可连接最多11个共享内存段,除非使用扩展的shmat

AIX4.1以后版本将内存分段管理,且要求一段共享内存必须映射内存段的起始位置,即每个共享内存地址必须是2^18整数倍。每个进程可以使用16256M的内存段,其中11段可用做共享内存,即默认情况进程最多只能使用11段共享内存,如果进程扩展了数据段空间,共享内存将不足11段。

增加环境变量:export EXTSHM=ON

这样共享内存地址不受256M限制,即一段共享内存可以使用一个普通地址,只要空间足够可以加载很多段共享内存。

修改系统限制/etc/security/limits,修改nofiles=-1    nofiles_hard=-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值