免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3159 | 回复: 3
打印 上一主题 下一主题

TUXEDO启动时报Cannot allocate memory [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-28 16:50 |只看该作者 |倒序浏览
如题:

编译完成动态库后,启动tuxedo报错。

exec tux_aaa-A -e /cbs/log/err.log -o /cbs/log/out.log -- -S aaa:
        tux_aaa: error while loading shared libraries: libtr_aaa.so: failed to map segment from shared object: Cannot allocate memory
CMDTUX_CAT:819: INFO: Process id=13810 Assume started (pipe).

编译动态库命令为:

gcc -o libtr_aaa.so -shared -fPIC $HOME/obj/*.o

操作系统为:RHEL5.3

系统内存大小为1G

ulimit属性为 ulimit -m unlimited

网上查询出的方法都试过了,问题依然,直接执行tux_aaa也会报错:
tux_aaa: error while loading shared libraries: libtr_aaa.so: failed to map segment from shared object: Cannot allocate memory
还请各位大侠解释为什么。

我用cat /proc/swaps查看了一下。
Filename                                Type            Size    Used    Priority
/dev/mapper/VolGroup00-LogVol01         partition       2097144 226956  -1

free -m
             total       used       free     shared    buffers     cached
Mem:          1010        497        513          0         17        264
-/+ buffers/cache:        215        795
Swap:         2047        221       1826


后使用RHEL4,内存1.5G的编译,
使用:cc -o libtr_aaa.so -shared -fPIC $HOME/obj/*.o

问题同样。

该目录下有3000多少.o文件,尝试只使用其中20个左右,可以正常编译出服务,同时启动服务。

free -m
             total       used       free     shared    buffers     cached
Mem:          1518        925        592          0         52        712
-/+ buffers/cache:        160       1357
Swap:         1983          0       1983

正常启动时内存使用情况如上。

后用strace查看:
可正常启动时:
old_mmap(NULL, 291216964, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xa6a46000
不能正常启动时:
old_mmap(NULL, 323745088, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = -1 ENOMEM (Cannot allocate memory)

现问题是无法定位这个到底是编译时的问题,还是操作系统问题?还是别的什么问题?


PS:
编译服务的脚本为:
buildserver -v -f "-ltr_$server" -f "$DLIBS" -f "$ORALIBS -lm -lc " -o "$RUNDIR/bin/tux_$server.new" -s "$server"_01:RUNSERVER -s "$server"_02:RUNSERVER -s "$server"_03:RUNSERVER


后使用16G内存的物理机器,问题依然。

论坛徽章:
0
2 [报告]
发表于 2010-07-28 16:54 |只看该作者
本帖最后由 Ruckie 于 2010-07-28 16:55 编辑

PS:

后在物理机器启动时,查看内存情况如下:

free -m
             total       used       free     shared    buffers     cached
Mem:         16238       1483      14754          0         91       1228
-/+ buffers/cache:        163      16074
Swap:         1983          0       1983

ulimit设置如下:

ulimit -a
address space limit (kbytes)   (-M)  unlimited
core file size (blocks)        (-c)  unlimited
cpu time (seconds)             (-t)  unlimited
data size (kbytes)             (-d)  unlimited
file size (blocks)             (-f)  unlimited
locks                          (-L)  unlimited
locked address space (kbytes)  (-l)  32
nofile                         (-n)  1024
nproc                          (-u)  278528
pipe buffer size (bytes)       (-p)  4096
resident set size (kbytes)     (-m)  unlimited
socket buffer size (bytes)     (-b)  4096
stack size (kbytes)            (-s)  unlimited
threads                        (-T)  not supported
process size (kbytes)          (-v)  unlimited

论坛徽章:
0
3 [报告]
发表于 2010-07-29 09:11 |只看该作者
Is anybody Here?

论坛徽章:
0
4 [报告]
发表于 2010-07-29 14:57 |只看该作者
据网上所说是SWAP不足
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP