歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

AIX大程序支持


在linux上的程序放到AIX560上,結果一跑就coredown.
用ulimit -a查看限制,發現內存限制太小。將內存改為無限制(也可以用smit),
ulimit -m unlimited 內存
ulimit -s unlimited 堆棧
ulimit -d unlimited 數據段
發現程序最多可以申請256M內存,再多還是coredown。
再將
export LDR_CNTRL=MAXDATA=0x40000000 1G
export LDR_CNTRL=MAXDATA=0x80000000 2G
也最多可以申請2G空間,以上是用32位編譯的。
采用64位編譯(-q64)後。
export LDR_CNTRL=MAXDATA=0xD0000000
export LDR_CNTRL=MAXDATA=0xF0000000 4G
可以最多申請4G空間。
最後設置
export LDR_CNTRL=MAXDATA=0xF00000000 4G
幾乎可以申請無限空間(超出物理內存)。
設置該環境變量同時,可以設置使用dsa屬性和是否使用最大頁
eg:
export LDR_CNTRL=MAXDATA=0xF00000000@dsa
export LDR_CNTRL=MAXDATA=0xF00000000@LARGE_PAGE_DATA=y
如果使用32位編譯的話,可以通過共享內存來擴展超過2G的內存申請。
以上環境變量僅對當前對話有效,也可以單獨設置到程序中,
采用編譯或者啟動時添加選項都可以
eg:
cc -bmaxdata:0xD0000000/dsa sample.o
LDR_CNTRL=MAXDATA=0xF00000000 a.out
Copyright © Linux教程網 All Rights Reserved