AIX系统--共享内存

来源:互联网 发布:网络刷国外信用卡套现 编辑:程序博客网 时间:2024/05/07 00:28

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

0 0
原创粉丝点击