WEB开发网
开发学院操作系统Linux/Unix AIX 5L 上的共享库内存占用 阅读

AIX 5L 上的共享库内存占用

 2008-11-10 08:28:28 来源:WEB开发网   
核心提示: 看起来上面四个库无法映射到共享段,因此,AIX 5L 上的共享库内存占用(8),它们映射到私有段 0x3 中,该私有段供通过调用 mmap() 例程分配的任何通用内存使用,我们将看到进程占用内存有明显区别:$ ps -e -o pid,vsz,user,comm | grep WIRepo

看起来上面四个库无法映射到共享段。因此,它们映射到私有段 0x3 中,该私有段供通过调用 mmap() 例程分配的任何通用内存使用。

有几种条件会强制共享库独立映射到 32 位 AIX 上:

共享段 0xd 中的空间不足(如上所述)。

共享库没有组或其他角色的执行权限。您可以指定 rwxr-xr-x 权限来更正此问题;但是,开发人员将希望使用私有权限(例如 rwx------),这样他们就不必在每次重新编译和为测试而部署共享库时运行 slibclean。

一些文档说明共享库是通过 nfs 加载的。

如果同一个库来自不同的位置,那么 AIX 内核甚至会将该库两次加载到共享内存中:

sj2e652a-chloe:~/e652_r>genkld | grep libcplib.so
    d5180000  678c6 /space2/home/sj2e652a/e652_r/lib/libcplib.so
    d1cf5000  678c6 /home/sj1e652a/xir2_r/lib/libcplib.so

处理错误

如果运行部署在不同目录中的 XIr2 的另一个实例,我们将看到进程占用内存有明显区别:

$ ps -e -o pid,vsz,user,comm | grep WIReportServer
28166 58980  jbrown WIReportServer
46968 152408 sj1xir2a WIReportServer
48276 152716 sj1xir2a WIReportServer
49800 152788 sj1xir2a WIReportServer
50832 152708 sj1xir2a WIReportServer

帐户“jbrown”的实例首先启动,然后启动帐户“sj1xir2a”的实例。如果我们要执行一些微小、存在风险的操作,例如在我们的 bobje/setup/env.sh 文件中的适当位置进行设置:

  LIBPATH=~jbrown/vanpgaix40/bobje/enterprise115/aix_rs6000:$LIBPATH

上一页  3 4 5 6 7 8 9  下一页

Tags:AIX 共享 内存

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接