2011-09-13 17:44:24 +00:00
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" / >
< title > DB_ENV-> memp_stat()< / title >
< link rel = "stylesheet" href = "apiReference.css" type = "text/css" / >
< meta name = "generator" content = "DocBook XSL Stylesheets V1.73.2" / >
< link rel = "start" href = "index.html" title = "Berkeley DB C API Reference" / >
< link rel = "up" href = "memp.html" title = "Chapter 8. The DB_MPOOLFILE Handle" / >
< link rel = "prev" href = "mempregister.html" title = "DB_ENV->memp_register()" / >
< link rel = "next" href = "mempstat_print.html" title = "DB_ENV->memp_stat_print()" / >
< / head >
< body >
< div xmlns = "" class = "navheader" >
< div class = "libver" >
2012-11-14 21:35:20 +00:00
< p > Library Version 11.2.5.3< / p >
2011-09-13 17:44:24 +00:00
< / div >
< table width = "100%" summary = "Navigation header" >
< tr >
< th colspan = "3" align = "center" > DB_ENV-> memp_stat()< / th >
< / tr >
< tr >
< td width = "20%" align = "left" > < a accesskey = "p" href = "mempregister.html" > Prev< / a > < / td >
< th width = "60%" align = "center" > Chapter 8.
The DB_MPOOLFILE Handle
< / th >
< td width = "20%" align = "right" > < a accesskey = "n" href = "mempstat_print.html" > Next< / a > < / td >
< / tr >
< / table >
< hr / >
< / div >
< div class = "sect1" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
< h2 class = "title" style = "clear: both" > < a id = "mempstat" > < / a > DB_ENV-> memp_stat()< / h2 >
< / div >
< / div >
< / div >
< pre class = "programlisting" > #include < db.h>
int
DB_ENV-> memp_stat(DB_ENV *env, DB_MPOOL_STAT **gsp,
DB_MPOOL_FSTAT *(*fsp)[], u_int32_t flags); < / pre >
< p >
The < code class = "methodname" > DB_ENV-> memp_stat()< / code > method returns the memory pool (that is, the
buffer cache) subsystem statistics.
< / p >
< p >
The < code class = "methodname" > DB_ENV-> memp_stat()< / code > method creates statistical structures of
type < code class = "literal" > DB_MPOOL_STAT< / code > and < code class = "literal" > DB_MPOOL_FSTAT< / code > , and copy
pointers to them into user-specified memory locations. The cache statistics are stored in
the < code class = "literal" > DB_MPOOL_STAT< / code > structure and the per-file cache statistics are stored
the < code class = "literal" > DB_MPOOL_FSTAT< / code > structure.
< / p >
< p >
Statistical structures are stored in allocated memory. If
application-specific allocation routines have been declared (see
< a class = "xref" href = "envset_alloc.html" title = "DB_ENV->set_alloc()" > DB_ENV-> set_alloc()< / a >
for more information), they are used to allocate the memory;
otherwise, the standard C library < span class = "bold" > < strong > malloc< / strong > < / span > (3) is used. The caller is responsible
for deallocating the memory. To deallocate the memory, free the
memory reference; references inside the returned memory need not be
individually freed.
< / p >
< p >
If < span class = "bold" > < strong > gsp< / strong > < / span > is non-NULL, the global
statistics for the cache < span class = "bold" > < strong > mp< / strong > < / span > are
copied into the memory location to which it refers. The following
< code class = "literal" > DB_MPOOL_STAT< / code > fields will be filled in:
< / p >
< div class = "itemizedlist" >
< ul type = "disc" >
< li >
< p >
< span class = "bold" > < strong > u_int32_t st_gbytes;< / strong > < / span >
< / p >
< p >
Gigabytes of cache (total cache size is st_gbytes + st_bytes).
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > u_int32_t st_bytes;< / strong > < / span >
< / p >
< p >
Bytes of cache (total cache size is st_gbytes + st_bytes).
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > u_int32_t st_ncache;< / strong > < / span >
< / p >
< p >
Number of caches.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > u_int32_t st_max_ncache;< / strong > < / span >
< / p >
< p >
Maximum number of caches, as configured with the
< a class = "xref" href = "envset_cache_max.html" title = "DB_ENV->set_cache_max()" > DB_ENV-> set_cache_max()< / a >
method.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > roff_t st_regsize;< / strong > < / span >
< / p >
< p >
Individual cache size, in bytes.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > size_t st_mmapsize;< / strong > < / span >
< / p >
< p >
Maximum memory-mapped file size.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > int st_maxopenfd;< / strong > < / span >
< / p >
< p >
Maximum open file descriptors.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > int st_maxwrite;< / strong > < / span >
< / p >
< p >
Maximum sequential buffer writes.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > db_timeout_t st_maxwrite_sleep;< / strong > < / span >
< / p >
< p >
Microseconds to pause after writing maximum sequential buffers.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > u_int32_t st_map;< / strong > < / span >
< / p >
< p >
Requested pages mapped into the process' address space (there is no
available information about whether or not this request caused disk
I/O, although examining the application page fault rate may be
helpful).
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_cache_hit;< / strong > < / span >
< / p >
< p >
Requested pages found in the cache.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_cache_miss;< / strong > < / span >
< / p >
< p >
Requested pages not found in the cache.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_page_create;< / strong > < / span >
< / p >
< p >
Pages created in the cache.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_page_in;< / strong > < / span >
< / p >
< p >
Pages read into the cache.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_page_out;< / strong > < / span >
< / p >
< p >
Pages written from the cache to the backing file.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_ro_evict;< / strong > < / span >
< / p >
< p >
Clean pages forced from the cache.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_rw_evict;< / strong > < / span >
< / p >
< p >
Dirty pages forced from the cache.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_page_trickle;< / strong > < / span >
< / p >
< p >
Dirty pages written using the
< a class = "xref" href = "memptrickle.html" title = "DB_ENV->memp_trickle()" > DB_ENV-> memp_trickle()< / a >
method.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > u_int32_t st_pages;< / strong > < / span >
< / p >
< p >
Pages in the cache.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > u_int32_t st_page_clean;< / strong > < / span >
< / p >
< p >
Clean pages currently in the cache.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > u_int32_t st_page_dirty;< / strong > < / span >
< / p >
< p >
Dirty pages currently in the cache.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > u_int32_t st_hash_buckets;< / strong > < / span >
< / p >
< p >
Number of hash buckets in buffer hash table.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_hash_examined;< / strong > < / span >
< / p >
< p >
Total number of hash elements traversed during hash table lookups.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > u_int32_t st_hash_longest;< / strong > < / span >
< / p >
< p >
Longest chain ever encountered in buffer hash table lookups.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > u_int32_t st_hash_mutexes;< / strong > < / span >
< / p >
< p >
The number of hash bucket mutexes in the buffer hash table.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_hash_nowait;< / strong > < / span >
< / p >
< p >
Number of times that a thread of control was able to obtain a hash
bucket lock without waiting.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > u_int32_t st_hash_searches;< / strong > < / span >
< / p >
< p >
Total number of buffer hash table lookups.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_hash_wait;< / strong > < / span >
< / p >
< p >
Number of times that a thread of control was forced to wait before
obtaining a hash bucket lock.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_hash_max_nowait;< / strong > < / span >
< / p >
< p >
The number of times a thread of control was able to obtain the hash
bucket lock without waiting on the bucket which had the maximum number
of times that a thread of control needed to wait.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_hash_max_wait;< / strong > < / span >
< / p >
< p >
Maximum number of times any hash bucket lock was waited for by a
thread of control.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_region_wait;< / strong > < / span >
< / p >
< p >
Number of times that a thread of control was forced to wait before
obtaining a cache region mutex.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_region_nowait;< / strong > < / span >
< / p >
< p >
Number of times that a thread of control was able to obtain a cache
region mutex without waiting.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_mvcc_frozen;< / strong > < / span >
< / p >
< p >
Number of buffers frozen.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_mvcc_thawed;< / strong > < / span >
< / p >
< p >
Number of buffers thawed.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_mvcc_freed;< / strong > < / span >
< / p >
< p >
Number of frozen buffers freed.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_alloc;< / strong > < / span >
< / p >
< p >
Number of page allocations.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_alloc_buckets;< / strong > < / span >
< / p >
< p >
Number of hash buckets checked during allocation.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_alloc_max_buckets;< / strong > < / span >
< / p >
< p >
Maximum number of hash buckets checked during an allocation.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_alloc_pages;< / strong > < / span >
< / p >
< p >
Number of pages checked during allocation.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_alloc_max_pages;< / strong > < / span >
< / p >
< p >
Maximum number of pages checked during an allocation.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_io_wait;< / strong > < / span >
< / p >
< p >
Number of operations blocked waiting for I/O to complete.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_sync_interrupted;< / strong > < / span >
< / p >
< p >
Number of mpool sync operations interrupted.
< / p >
< / li >
< / ul >
< / div >
< p >
If < span class = "bold" > < strong > fsp< / strong > < / span > is non-NULL, a pointer to a
NULL-terminated variable length array of statistics for individual
files, in the cache < span class = "bold" > < strong > mp< / strong > < / span > , is copied
into the memory location to which it refers. If no individual files
currently exist in the cache, < span class = "bold" > < strong > fsp< / strong > < / span >
will be set to NULL.
< / p >
< p >
The per-file statistics are stored in structures of type < code class = "literal" > DB_MPOOL_FSTAT< / code > .
The following < code class = "literal" > DB_MPOOL_FSTAT< / code > fields will be filled in for each file in
the cache; that is, each element of the array:
< / p >
< div class = "itemizedlist" >
< ul type = "disc" >
< li >
< p >
< span class = "bold" > < strong > char * file_name;< / strong > < / span >
< / p >
< p >
The name of the file.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > size_t st_pagesize;< / strong > < / span >
< / p >
< p >
Page size in bytes.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_cache_hit;< / strong > < / span >
< / p >
< p >
Requested pages found in the cache.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_cache_miss;< / strong > < / span >
< / p >
< p >
Requested pages not found in the cache.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > u_int32_t st_map;< / strong > < / span >
< / p >
< p >
Requested pages mapped into the process' address space.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_page_create;< / strong > < / span >
< / p >
< p >
Pages created in the cache.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_page_in;< / strong > < / span >
< / p >
< p >
Pages read into the cache.
< / p >
< / li >
< li >
< p >
< span class = "bold" > < strong > uintmax_t st_page_out;< / strong > < / span >
< / p >
< p >
Pages written from the cache to the backing file.
< / p >
< / li >
< / ul >
< / div >
< p >
The < code class = "methodname" > DB_ENV-> memp_stat()< / code > method may not be called before the
< a class = "xref" href = "envopen.html" title = "DB_ENV->open()" > DB_ENV-> open()< / a > method is called.
< / p >
< p >
The < code class = "methodname" > DB_ENV-> memp_stat()< / code > < span >
< span >
method returns a non-zero error value on failure and 0 on success.
< / span >
< / span >
< / p >
< div class = "sect2" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
2012-11-14 21:35:20 +00:00
< h3 class = "title" > < a id = "idp61252072" > < / a > Parameters< / h3 >
2011-09-13 17:44:24 +00:00
< / div >
< / div >
< / div >
< div class = "sect3" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
2012-11-14 21:35:20 +00:00
< h4 class = "title" > < a id = "idp61227096" > < / a > gsp< / h4 >
2011-09-13 17:44:24 +00:00
< / div >
< / div >
< / div >
< p >
The < span class = "bold" > < strong > gsp< / strong > < / span > parameter references memory
into which a pointer to the allocated global statistics structure is
copied.
< / p >
< / div >
< div class = "sect3" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
2012-11-14 21:35:20 +00:00
< h4 class = "title" > < a id = "idp61255296" > < / a > fsp< / h4 >
2011-09-13 17:44:24 +00:00
< / div >
< / div >
< / div >
< p >
The < span class = "bold" > < strong > fsp< / strong > < / span > parameter references memory
into which a pointer to the allocated per-file statistics structures
is copied.
< / p >
< / div >
< div class = "sect3" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
2012-11-14 21:35:20 +00:00
< h4 class = "title" > < a id = "idp61256024" > < / a > flags< / h4 >
2011-09-13 17:44:24 +00:00
< / div >
< / div >
< / div >
< p >
The < span class = "bold" > < strong > flags< / strong > < / span > parameter must be set to 0
or the following value:
< / p >
< div class = "itemizedlist" >
< ul type = "disc" >
< li >
< p > < a id = "mempstat_DB_STAT_CLEAR" > < / a >
< code class = "literal" > DB_STAT_CLEAR< / code >
< / p >
< p >
Reset statistics after returning their values.
< / p >
< / li >
< / ul >
< / div >
< / div >
< / div >
< div class = "sect2" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
2012-11-14 21:35:20 +00:00
< h3 class = "title" > < a id = "idp61260936" > < / a > Errors< / h3 >
2011-09-13 17:44:24 +00:00
< / div >
< / div >
< / div >
< p >
The < code class = "methodname" > DB_ENV-> memp_stat()< / code > < span >
< span >
method may fail and return one of the following non-zero errors:
< / span >
< / span >
< / p >
< div class = "sect3" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
2012-11-14 21:35:20 +00:00
< h4 class = "title" > < a id = "idp61265528" > < / a > EINVAL< / h4 >
2011-09-13 17:44:24 +00:00
< / div >
< / div >
< / div >
< p >
An invalid flag value or parameter was specified.
< / p >
< / div >
< / div >
< div class = "sect2" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
2012-11-14 21:35:20 +00:00
< h3 class = "title" > < a id = "idp61264232" > < / a > Class< / h3 >
2011-09-13 17:44:24 +00:00
< / div >
< / div >
< / div >
< p >
< a class = "link" href = "env.html" title = "Chapter 5. The DB_ENV Handle" > DB_ENV< / a > , < a class = "link" href = "memp.html" title = "Chapter 8. The DB_MPOOLFILE Handle" > DB_MPOOLFILE< / a >
< / p >
< / div >
< div class = "sect2" lang = "en" xml:lang = "en" >
< div class = "titlepage" >
< div >
< div >
2012-11-14 21:35:20 +00:00
< h3 class = "title" > < a id = "idp61256896" > < / a > See Also< / h3 >
2011-09-13 17:44:24 +00:00
< / div >
< / div >
< / div >
< p >
< a class = "xref" href = "memp.html#memplist" title = "Memory Pools and Related Methods" > Memory Pools and Related Methods< / a >
< / p >
< / div >
< / div >
< div class = "navfooter" >
< hr / >
< table width = "100%" summary = "Navigation footer" >
< tr >
< td width = "40%" align = "left" > < a accesskey = "p" href = "mempregister.html" > Prev< / a > < / td >
< td width = "20%" align = "center" >
< a accesskey = "u" href = "memp.html" > Up< / a >
< / td >
< td width = "40%" align = "right" > < a accesskey = "n" href = "mempstat_print.html" > Next< / a > < / td >
< / tr >
< tr >
< td width = "40%" align = "left" valign = "top" > DB_ENV-> memp_register() < / td >
< td width = "20%" align = "center" >
< a accesskey = "h" href = "index.html" > Home< / a >
< / td >
< td width = "40%" align = "right" valign = "top" > DB_ENV-> memp_stat_print()< / td >
< / tr >
< / table >
< / div >
< / body >
< / html >