libmemstat(3) - Library for monitoring kernel memory use

From: Robert Watson (
Date: 07/14/05

  • Next message: Kevin Oberman: "Problems with OpenBSD dhclient"
    Date: Thu, 14 Jul 2005 18:50:04 +0100 (BST)

    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:

       vmstat -m
       vmstat -z
       netstat -mb

    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
    system. :-)

    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 <>
    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

       Added files:
         lib/libmemstat Makefile libmemstat.3 memstat.c memstat.h
                              memstat_all.c memstat_internal.h
                              memstat_malloc.c memstat_uma.c
       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)
    _______________________________________________ mailing list
    To unsubscribe, send any mail to ""

  • Next message: Kevin Oberman: "Problems with OpenBSD dhclient"

    Relevant Pages

    • Re: Virtual Bytes is STL
      ... support only default and we have to implement our own to support this ... has some allocators, so you don't necessarily have to roll your own. ... service then it will keep that memory forever until its not stopped or ... the amount of reserved memory, but you probably don't want to limit it to ...
    • [PATCH 2.6.28-rc5 00/11] Kernel memory leak detector (updated)
      ... The kmemleak activity has been pretty quite for the past ... adding support for slob and slub allocators and trying it on ... support for all three memory allocators - slab, ...
    • Help me find out what memory sticks I use
      ... I think that my webserver needs more memory. ... DMI type 0, 20 bytes. ... ESCD support is available ... Internal Connector Type: None ...
    • Re: 2.6.23-rc1-mm2
      ... Zone PFN ranges: ... That doesn't make a whole pile of sense unless the memory map ... MSFT 97) ... # CPU idle PM support ...
    • Kernel does not work with 8GB of RAM on Intel 965WH motherboards.
      ... When I use 8GB of memory on my x86_64 system, ... 4096 and blank "" to let the kernel use all 8GB of memory. ... # Linux kernel version: ... # ACPI Support ...