AIX 5L 上的共享库内存占用
2008-11-10 08:28:28 来源:WEB开发网执行计算
看看目前共享段 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
更多精彩
赞助商链接