Discussion:
Kernel memory accounting: pp_kernel, memstat, or something else?
Jeff Tomer
2010-04-06 01:10:41 UTC
Permalink
I turned to pp_kernel (in kstat output and available to an unprivileged user) and memstat (now 'wickedly' fast and still root-only) to help me accurately determine kernel memory usage. What I see is that pp_kernel ALWAYS reports a higher kernel memory utilization, sometimes as much as 800%(!), but typically around 30-50%. Here is some representative output:

# kstat | grep pp_kernel
pp_kernel 67961 <--- ~530 MB
#
# echo "::memstat" | mdb -k
Page Summary Pages MB %Tot
------------------ ---------------- ---------------- ------
Kernel 51454 401 20%
Anon 56093 438 22%
Exec and libs 6717 52 3%
Page cache 31851 248 12%
Free (cachelist) 67369 526 26%
Free (freelist) 43385 338 17%

Total 256869 2006
Physical 255491 1996
#

Others are seeing similar results and ZFS does not seem to change the general observation.


My requests:
- can someone please comment, or provide insight, on the preferred method for accurately accounting for kernel memory in Solaris?
- what is missing from the math that kstat is doing (see lines 923-931 in kstat_fr.c) that makes its result is so different than the simple vnode kvp counting performed by memstat?



Thanks.


-- Jeff
--
This message posted from opensolaris.org
Loading...