libmemstat(3) - Library for monitoring kernel memory use
From: Robert Watson (rwatson_at_FreeBSD.org)
Date: Thu, 14 Jul 2005 18:50:04 +0100 (BST) To: current@FreeBSD.org
I've just committed libmemstat(3), a library to support user space
applications monitoring kernel memory allocation. This is intended to be
the new back-end to several existing tools, including:
However, it's also easy to use to build new tools. For example,
memtop(8), which provides a top(1)-like interface for monitoring kernel
memory allocation. A highly enlightening set of output to see on a busy
I've not yet committed the changes to vmstat, netstat, etc, which will
follow in the next few days once things settle out from the commits that
went in to support it. The older sysctls to support older vmstat/netstat
will remain in place for some period of time while things settle also.
I've put some sample code for using libmemstat(3) up at the following URL:
This includes the above-mentioned memtop(8), and a sample memstat(8).
Since I'm not an ncurses programmer, I've not attempted to use it. The
foundations are there for people who do want to build more spiffy
monitoring tools though. This might also provide a useful back-end for an
SNMP module monitoring kernel memory use.
FYI: the libmemstat(3) API will probably change some in the next few weeks
based on feedback I receive about how usable or unusable it is.
Robert N M Watson
---------- Forwarded message ----------
Date: Thu, 14 Jul 2005 17:40:02 +0000 (UTC)
From: Robert Watson <rwatson@FreeBSD.org>
To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject: cvs commit: src/lib/libmemstat Makefile libmemstat.3 memstat.c
memstat.h memstat_all.c memstat_internal.h memstat_malloc.c
rwatson 2005-07-14 17:40:02 UTC
FreeBSD src repository
lib/libmemstat Makefile libmemstat.3 memstat.c memstat.h
Add libmemstat(3), a library for use by debugging and monitoring
applications in tracking kernel memory statistics. It provides an
abstracted interface to uma(9) and malloc(9) statistics, wrapped
around the recently added binary stream sysctls for the allocators.
Using this interface, it is easy to build monitoring tools, query
specific memory types for usage information, etc. Facilities are
provided for binding caller-provided data to memory types,
incremental updates of memory types, and queries that span multiple
Support for additional allocators is (relatively) easy to add.
The API for libmemstat(3) will probably change some over time as
consumers are written, and requirements evolve. It is written to
avoid encoding ABIs for data structure layout into consuming
applications for this reason.
MFC after: 1 week
Revision Changes Path
1.1 +23 -0 src/lib/libmemstat/Makefile (new)
1.1 +238 -0 src/lib/libmemstat/libmemstat.3 (new)
1.1 +366 -0 src/lib/libmemstat/memstat.c (new)
1.1 +134 -0 src/lib/libmemstat/memstat.h (new)
1.1 +47 -0 src/lib/libmemstat/memstat_all.c (new)
1.1 +124 -0 src/lib/libmemstat/memstat_internal.h (new)
1.1 +240 -0 src/lib/libmemstat/memstat_malloc.c (new)
1.1 +230 -0 src/lib/libmemstat/memstat_uma.c (new)
email@example.com mailing list
To unsubscribe, send any mail to "firstname.lastname@example.org"