[HP]: HPUX11.23下一关于内存的问题解决 _VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1580 | 回复: 1   主题: [HP]: HPUX11.23下一关于内存的问题解决         上一篇   下一篇 
    本主题由 Administrator 于 2014-9-16 15:22:06 移动
white
注册用户
等级:少校
经验:1342
发帖:303
精华:0
注册:2011-7-21
状态:离线
发送短消息息给white 加好友    发送短消息息给white 发消息
发表于: IP:您无权察看 2014-9-16 9:17:11 | [全部帖] [楼主帖] 楼主

问题描述:在HPUX11.23(IA64)平台上,运行tuxedo应用程序,部分程序启动后,其余的程序启动均报告如下错误:

exec schdmgnt_svr -A -r -- -i ../config/schdmgnt.cfg -m schdmgnt :
/usr/lib/hpux32/dld.so: Mmap failed for the
library</prmdev/chnldev/lib/libschdmgnt_appD.sl> : Not enough space.
CMDTUX_CAT:819: INFO: Process id=6864 Assume started (pipe).
......


这个时候,即使是其他的程序也可能有问题,如:

%cvs
/usr/lib/hpux32/dld.so: Mmap failed for the
library</usr/lib/hpux32/libcrypto.so.0> : Not enough space.
Killed


以上的binary分别是用aCC和gcc编译。

[@more@]


解决方法:需要重新链接binary,如果是ld,加参数+as,mpas,如果是cc/aCC,加参数-Wl,+as,mpas,只需重新链接即可。注意:这些参数改变链接器的行为,有可能对程序的性能产生影响。

参考文字[转]:HP-UX上32位程序,由于指针用4个字节表示,因此虚拟寻址空间为4G。在缺省的方式下,HP-UX会把这4G分成4个段,每个1G。其中0x0 - 0x40000000为Text段,其中存放的为程序的可执行代码。从0x40000000到0x7FFFFFFF,为程序的数据段,所有进程私有的数据都将在此段中。所以如果malloc,则得到的地址一定为0x40000000到0x7FFFFFFF之间。其中系统栈从7FFFFFFF向0x4000000涨,而堆则反之。在第3个和第4个段中存放进程之间的共享数据。所有的32位程序将共同占用这2G的虚拟空间。例如进程C有100M的共享内存,虽然这100M和进程A,B毫无关系,此时,A,B也只能利用剩余的1.9G的空间来共享内存。这样的好处是在共享的两个段里面,如果两个共享内存的指针指向同一个虚拟地址,则其指向的物理地址也是相同的,因此在共享内存上无需把不同的虚拟地址映射到一个物理地址,所以在处理上稍稍快一些。因此该种方式叫做SHARE_MAGIC。

因此SHARE_MAGIC的方式下,Text 1G, Data 1G Share Address 2G。在这种方式下用户能使用到的内存只有1G,所以常常有人问为什么1G内存后就报memory fail,就是这个原因。而且在这种方式下由于share address虚拟存储和物理内存的对应关系,因此也不能mmap同样内存两次。

为了能使得用户能够使用更多的内存,HP-UX也提供了其他的内存方式,如:

EXEC-MAGIC,Text和Data两个段给Text和Data共用,Share Address 2G,这样内存可以用到差不多1.7G左右。

SHMEM-MAGIC,Text和Data合用一个段,Share Address占剩下的3G,因此私用内存只能用到700M左右

MPAS (IPF only),把4G内存完全给系统使用,不分类型和大小。这样任何部分都可以用到整个4G的内存,但是share memory的虚拟地址和物理内存的一一对应关系便没有了,因此可以mmap多次了,但是由于地址必须多做一次转换,性能上稍有降低。

以上各种方式都可以在编译时候使用aCC -Wl,+as,share_magic/exec_magic/mpas等获得相应的内存管理方式,也可以用chatr命令来修改可执行程序的内存管理方式。(参见chatr manual)

该贴由system转至本版2014-9-16 15:22:06




赞(0)    操作        顶端 
联动大白
注册用户
等级:新兵
经验:79
发帖:0
精华:0
注册:2015-5-27
状态:离线
发送短消息息给联动大白 加好友    发送短消息息给联动大白 发消息
发表于: IP:您无权察看 2017-6-16 0:00:00 | [全部帖] [楼主帖] 2  楼

为了方便大家阅读,我对文章中错误号来解释一下吧!

Error Id: CMDTUX_CAT:81

Title: ERROR: PERM parameter must be >= 1 and <= 0777

Description:

The value for PERM (permissions) as specified in the RESOURCES section of the UBBCONFIG file is less than 1 or greater than 0777. PERM must be greater than or equal to 1 and less than or equal to 0777.


Error Id: CMDTUX_CAT:819

Title: INFO: Process id=pid Assume started (pipe).

Description:

While booting BEA TUXEDO system processes, tmboot receives an interrupt and the system issues this message to point out that it is not aware of the process status. Even though the boot process is interrupted (and perhaps aborted by the administrator), the local BEA TUXEDO system process currently being started may succeed or fail.


也许你已明白,但对一个人有用也是我存在的理由!^_^ By:持之以恒的大白

-- 来自: 北京联动北方科技有限公司



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论