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

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

 2008-11-10 08:28:28 来源:WEB开发网   
核心提示: 执行计算看看目前共享段 0xd 中有多少空间,我们将再次使用 bc 计算器工具,AIX 5L 上的共享库内存占用(7),理所当然,我们将验证段 0xd 的大小,因此我们可以将其从 procmap 的输出结果中筛选出来,请记住,# bcibase=16E0000000-D0000000268

执行计算

看看目前共享段 0xd 中有多少空间。我们将再次使用 bc 计算器工具。理所当然,我们将验证段 0xd 的大小。

# bc  
ibase=16
E0000000-D0000000
268435456
ibase=A
268435456/(1024^2)
256

看起来不错。如上所述,每个段为 256MB。接下来,看看目前使用了多少容量。

$ echo "ibase=16; $(genkld | egrep ^ {8} | awk '{print $2}' | tr '[a-f]' '[A-F]'
  | tr 'n' '+' ) 0" | bc
39798104
$
$ bc <<EOF
> 39798104/(1024^2)
> EOF
37

也就是说,目前使用了 37MB。然后启动 XIr2,并进行比较:

$ echo "ibase=16; $(genkld | egrep ^ {8} | awk '{print $2}' | tr '[a-f]' '[A-F]'
  | tr 'n' '+' ) 0" | bc
266069692
$
$ bc <<EOF
> 266069692/(1024^2)
> EOF
253

现在使用了 253MB。这非常接近于限值 256MB。任意选择一个进程,如 WIReportServer,然后查看有多少共享库已放入共享空间,以及有多少共享库必须独立映射。因为我们了解共享段是从地址 0xd000000 开始的,因此我们可以将其从 procmap 的输出结果中筛选出来。请记住,只有代码段会映射到段 0xd 中,因此我们仅查找带有 read/exec 的行:

$ procmap 35620 | grep read/exec | grep -v ^d
10000000    10907K read/exec     boe_fcprocd
31ad3000    14511K read/exec
/crystal/sj1xir2a/xir2_r/bobje/enterprise115/aix_rs6000/libEnterpriseFramework.so
3167b000    3133K read/exec
/crystal/sj1xir2a/xir2_r/bobje/enterprise115/aix_rs6000/libcpi18nloc.so
3146c000    1848K read/exec
/crystal/sj1xir2a/xir2_r/bobje/enterprise115/aix_rs6000/libBOCP_1252.so
31345000     226K read/exec
/crystal/sj1xir2a/xir2_r/bobje/enterprise115/aix_rs6000/btlat300.so

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

Tags:AIX 共享 内存

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