BSD 8.1 and 9.1 memory increase
Gumpula, Suresh
Suresh.Gumpula at netapp.com
Tue Mar 17 18:10:43 UTC 2015
On similar notes , when I looked at procstat -v , it does not show us the shared libraries resident usage .
I have added a column to display the shared resident count.
kern_proc.c:
if (obj->shadow_count > 1)
kve->kve_shared_resident =
obj->resident_page_count;
procstat_vm.c :
if (kve->kve_private_resident || kve->kve_shared_resident)
entry_total =(kve->kve_private_resident + kve->kve_shared_resident);
else
entry_total = kve->kve_resident;
proc_total += entry_total;
shared_total += kve->kve_shared_resident;
private_total += kve->kve_private_resident;
mapped_total += kve->kve_resident;
printf("%8d ", kve->kve_shared_resident);
printf("%8d ", entry_total);
% sudo procstat -v `pgrep bash`
PID START END PRT RES PRES SHRD TOTAL REF SHD FL TP PATH
3485 0x400000 0x4b0000 r-x 128 151 0 151 2 1 CN-- vn /usr/bin/bash
3485 0x6b0000 0x6b9000 rw- 9 0 0 9 1 0 C--- vn /usr/bin/bash
3485 0x6b9000 0x800000 rw- 5 0 0 5 1 0 C--- df
3485 0x8006b0000 0x8006c9000 r-x 25 0 0 25 38 0 CN-- vn /libexec/ld-elf.so.1
3485 0x8006c9000 0x8006ef000 rw- 26 0 0 26 1 0 CN-- df
3485 0x8008c8000 0x8008ca000 rw- 2 0 0 2 1 0 CN-- df
3485 0x8008ca000 0x800914000 r-x 40 0 79 79 6 3 CN-- vn /lib/libncurses.so.8
3485 0x800914000 0x800b14000 --- 0 0 0 0 1 0 CN-- df
3485 0x800b14000 0x800b19000 rw- 5 0 0 5 1 0 CN-- vn /lib/libncurses.so.8
3485 0x800b19000 0x800c71000 r-x 318 0 331 331 75 37 CN-- vn /lib/libc.so.7
3485 0x800c71000 0x800e71000 --- 0 0 0 0 1 0 CN-- df
3485 0x800e71000 0x800e7c000 rw- 11 0 0 11 1 0 CN-- vn /lib/libc.so.7
3485 0x800e7c000 0x800ee2000 rw- 9 0 0 9 1 0 CN-- df
3485 0x801000000 0x801200000 rw- 35 0 0 35 1 0 C--- df
3485 0x7ffffffdf000 0x7ffffffff000 rw- 5 0 0 5 1 0 C--D df
3485 0x7ffffffff000 0x800000000000 r-x 1 0 0 1 40 0 CN-- ph
Totals(pages) 619 151 410 694
Can somebody pick up this change if it looks good ?
Thanks
Suresh
From: <Gumpula>, suresh gumpula <suresh.gumpula at netapp.com<mailto:suresh.gumpula at netapp.com>>
Date: Tuesday, March 17, 2015 at 2:08 PM
To: "freebsd-hackers at freebsd.org<mailto:freebsd-hackers at freebsd.org>" <freebsd-hackers at freebsd.org<mailto:freebsd-hackers at freebsd.org>>
Subject: BSD 8.1 and 9.1 memory increase
Hello VM experts,
I am trying to figure out what has been changed from 8.1 to 9.1 which results more memory footprint on all processes. looking at one of the big processes we have on a idle machine,
its about 35M resident size increase. Looking at map entries by procstat -v shows me that two libraries , one is our internal library(libmgwd) and other one is boost consume more now.
There are no changes made with respect to process, just comparing after the upgrade to 9.1.
Are here any knows things with respect VM have been changed and could result in more resident memory ? Can somebody please help on this to know what exactly causing this behaviour ?
Details below.
Thank you!
8.1
—
% sudo procstat -v `pgrep mgwd`
PID START END PRT RES PRES REF SHD FL TP PATH
2213 0x800a46000 0x807b41000 r-x 18209 22827 2 1 CN vn /usr/lib/libmgwd.so.1
2213 0x807d40000 0x808a90000 rw- 3019 0 1 0 C- vn /usr/lib/libmgwd.so.1
2213 0x833406000 0x833407000 rw- 1 0 1 0 CN vn /usr/lib/libboost_atomic.so.1.56.0
2213 0x833600000 0x835600000 rw- 8134 0 1 0 C- df
2213 0x835600000 0x835800000 rw- 20 0 1 0 -- df
2213 0x7ffff6f99000 0x7ffff6fb9000 rw- 1 0 1 0 -- df
2213 0x7ffff719a000 0x7ffff71ba000 rw- 1 0 1 0 -- df
2213 0x7ffff739b000 0x7ffff73bb000 rw- 12 0 1 0 -- df
9.1
——
% sudo procstat -v `pgrep mgwd`
PID START END PRT RES PRES REF SHD FL TP PATH
2158 0x800a1c000 0x807c87000 r-x 23328 26760 2 1 CN-- vn /usr/lib/libmgwd.so.1
2158 0x807e87000 0x808bd4000 rw- 3283 0 1 0 C--- vn /usr/lib/libmgwd.so.1
2158 0x8336d7000 0x8336d8000 rw- 1 0 1 0 CN-- vn /usr/lib/libboost_atomic.so.1.56.0
2158 0x8336d8000 0x8342cf000 rw- 2105 0 1 0 C-S- df
2158 0x8342cf000 0x8342ea000 rw- 27 0 1 0 C--- df
2158 0x8342ea000 0x8342f3000 rw- 7 0 1 0 ---- df
2158 0x834400000 0x834600000 rw- 511 0 1 0 C--- df
2158 0x834600000 0x836400000 rw- 7375 0 1 0 C--- df
2158 0x836400000 0x836600000 rw- 228 0 1 0 ---- df
BSD 8.1
======
last pid: 5116; load averages: 5.22, 4.29, 2.34 up 0+00:10:15 17:34:00
352 processes: 1 running, 350 sleeping, 1 zombie
CPU: 0.2% user, 0.0% nice, 4.5% system, 1.7% interrupt, 93.5% idle
Mem: 297M Active, 648M Inact, 139M Wired, 6948K Cache, 7520K Buf, 1862M Free
Swap: 1536M Total, 1536M Free
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
2219 root 68 96 0 859M 226M ucond 1 0:24 0.00% mgwd
BSD 9.1
———
last pid: 5344; load averages: 5.17, 4.47, 2.79 up 0+00:26:12 17:22:57
39 processes: 1 running, 37 sleeping, 1 zombie
CPU: 0.2% user, 0.0% nice, 2.2% system, 0.6% interrupt, 97.0% idle
Mem: 338M Active, 669M Inact, 147M Wired, 392K Cache, 7488K Buf, 1799M Free
Swap: 1536M Total, 1536M Fre
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
2158 root 68 40 0 874M 262M uwait 1 0:23 0.00% mgwd
========
% ldd /usr/lib/libmgwd.so.1
/usr/lib/libmgwd.so.1:
% ldd /usr/lib/libboost_atomic.so.1.56.0
/usr/lib/libboost_atomic.so.1.56.0:
librt.so.1 => /usr/lib/librt.so.1 (0x801002000)
libthr.so.3 => /lib/libthr.so.3 (0x801207000)
;;image size comparison on different builds shows TEXT size of a libray went up by ~1.5M
text data bss dec hex filename
118484184 139568805724944 13816600883c3ef8 devN_150110_0500/mgmtgateway/bedrock/internal/x86_64/ulibso/libmgwd.so.1
119973051 139460085724944 139644003852cc63 devN_150110_1035/mgmtgateway/bedrock/internal/x86_64/ulibso/libmgwd.so.1
BSD 9.1
——
% size /sbin/mgwd
text data bss dec hex filename
2106422 42388 371584 2520394 26754a /sbin/mgwd
% size /usr/lib/libboost_atomic.so.1.56.0
text data bss dec hex filename
1309 264 2624 4197 1065 /usr/lib/libboost_atomic.so.1.56.0
BSd 8.1
———
% size /sbin/mgwd
text data bss dec hex filename
2091457 42364 371520 2505341 263a7d /sbin/mgwd
% size /usr/lib/libboost_atomic.so.1.56.0
text data bss dec hex filename
1309 264 2624 4197 1065 /usr/lib/libboost_atomic.so.1.56.0
Thanks
Suresh
More information about the freebsd-hackers
mailing list