AIX系统--内存限制

AIX的32位进程默认Userdata、heap、Stack仅256M,导致内存不足问题。通过ld命令增加-bmaxdata参数、使用ldedit或设置环境变量LDR_CNTRL=MAXDATA,可提升至1.5G,但会压缩共享内存。

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

AIX的处理器PowerPC有16个地址寄存器,对应的AIX下32位进程地址空间分为16段,每段256M,默认配置所有Userdata、heap、Stack最多占用一段256M,共享内存可以分配11段。

USERDATAheapstack三种最常用的内存只有256M,只能应付一般情况,AIX系统中经常出现内存耗尽异常。解决方法是增加MAXDATA值。

(1)  编译时,ld命令增加参数“-bmaxdata:0x80000000”,指定编译产生的进程可以使用到1.5G堆栈,段2---8,执行“dump –ov XXX”可以查看可执行文件头部的可变参数。

(2)  AIX5.1后使用“ldedit –bmaxdata:0x80000000”可以修改可执行文件的MAXDATA值。

(3)  AIX4.3后可以修改环境变量“LDR_CNTRL=MAXDATA=0x80000000”,环境变量生效后,所有启动的进程都可以使用1.5Guserdata

增加MAXDATA后,必然压缩共享内存的使用空间。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值