diff options
Diffstat (limited to 'docs/programmer_reference/program_perfmon.html')
| -rw-r--r-- | docs/programmer_reference/program_perfmon.html | 1171 |
1 files changed, 594 insertions, 577 deletions
diff --git a/docs/programmer_reference/program_perfmon.html b/docs/programmer_reference/program_perfmon.html index a72e35d2..1a91ba16 100644 --- a/docs/programmer_reference/program_perfmon.html +++ b/docs/programmer_reference/program_perfmon.html @@ -14,17 +14,16 @@ <body> <div xmlns="" class="navheader"> <div class="libver"> - <p>Library Version 11.2.5.3</p> + <p>Library Version 12.1.6.1</p> </div> <table width="100%" summary="Navigation header"> <tr> - <th colspan="3" align="center">Performance Event Monitoring</th> + <th colspan="3" align="center">Performance Event + Monitoring</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="program_runtime.html">Prev</a> </td> - <th width="60%" align="center">Chapter 15. - Programmer Notes - </th> + <th width="60%" align="center">Chapter 15. Programmer Notes </th> <td width="20%" align="right"> <a accesskey="n" href="program_faq.html">Next</a></td> </tr> </table> @@ -34,7 +33,8 @@ <div class="titlepage"> <div> <div> - <h2 class="title" style="clear: both"><a id="program_perfmon"></a>Performance Event Monitoring</h2> + <h2 class="title" style="clear: both"><a id="program_perfmon"></a>Performance Event + Monitoring</h2> </div> </div> </div> @@ -52,7 +52,8 @@ </dt> <dt> <span class="sect2"> - <a href="program_perfmon.html#program_perfmon_examples">Example Scripts</a> + <a href="program_perfmon.html#program_perfmon_examples">Example + Scripts</a> </span> </dt> <dt> @@ -62,24 +63,24 @@ </dt> </dl> </div> - <p> - The Performance Event Monitoring feature uses Solaris DTrace or - Linux SystemTap to "publish" interesting events as they occur - inside of Berkeley DB. - The operating system utilities <span class="command"><strong>dtrace</strong></span> or - <span class="command"><strong>stap</strong></span> run scripts which select, analyze, - and display events. There is no need to modify the application. - Any application which uses that Berkeley DB library can be monitored. - For more information about these instrumentation tools refer to the - following pages: - </p> + <p> + The Performance Event Monitoring feature uses Solaris + DTrace or Linux SystemTap to "publish" interesting events as + they occur inside of Berkeley DB. The operating system + utilities <span class="command"><strong>dtrace</strong></span> or <span class="command"><strong>stap</strong></span> + run scripts which select, analyze, and display events. There + is no need to modify the application. Any application which + uses that Berkeley DB library can be monitored. For more + information about these instrumentation tools refer to the + following pages: + </p> <div class="variablelist"> <dl> <dt> <span class="term">DTrace</span> </dt> <dd> - <a class="ulink" href="http://www.oracle.com/technetwork/systems/dtrace/dtrace/index-jsp-137532.html" target="_top">http://www.oracle.com/technetwork/systems/dtrace/dtrace/index-jsp-137532.html</a> + <a class="ulink" href="http://www.oracle.com/technetwork/server-storage/solaris11/technologies/dtrace-1930301.html" target="_top">http://www.oracle.com/technetwork/server-storage/solaris11/technologies/dtrace-1930301.html</a> </dd> <dt> <span class="term">SystemTap</span> @@ -90,59 +91,64 @@ </dl> </div> <p> -</p> - <p> - Performance Event Monitoring is available for operating systems where - DTrace or SystemTap supports static probe points in user applications, - such as Solaris 10 and OpenSolaris, some versions of Linux, - and Mac OS X 10.6 and later. - By including --enable-dtrace to the configuration options, the resulting - libraries will include probe points for these event categories: </p> + <p> + Performance Event Monitoring is available for operating + systems where DTrace or SystemTap supports static probe points + in user applications, such as Solaris 10 and OpenSolaris, some + versions of Linux, and Mac OS X 10.6 and later. By including + --enable-dtrace to the configuration options, the resulting + libraries will include probe points for these event + categories: + </p> <div class="itemizedlist"> <ul type="disc"> + <li> + database operations: opening a database or + cursor, get, put, delete. + </li> <li> - database operations: opening a database or - cursor, get, put, delete. - </li> - <li> - internal operations regarding disk allocation, transactions, - concurrency control, and caching. - </li> - <li> - the beginning and ending of waiting periods due to conflicting - transactional consistency locks (for example, page locks), - mutexes, or shared latches. - </li> + internal operations regarding disk allocation, + transactions, concurrency control, and caching. + </li> <li> - timing dependent code paths which are expected to be infrequent. - These could raise concerns if they were to happen too often. - </li> + the beginning and ending of waiting periods due + to conflicting transactional consistency locks (for + example, page locks), mutexes, or shared latches. + </li> + <li> + timing dependent code paths which are expected + to be infrequent. These could raise concerns if they + were to happen too often. + </li> </ul> </div> + <p> + These probe points are implemented as + user-level statically defined traces (USDT's) for DTrace, and + static userspace markers for SystemTap. + </p> <p> - These probe points are implemented as user-level statically defined traces - (USDT's) for DTrace, and static userspace markers for SystemTap. -</p> - <p> - To monitor the statistics values as they are updated include - the --enable-perfmon-statistics configuration option. - This option generates probe points for updates to many of the counters - whose values are displayed by the db_stat utility - or returned by the various statistics functions. - The "cache" example script uses a few of these probe points. -</p> - <p> - Performance Event Monitoring is intended to be suitable for production - applications. Running Berkeley DB with DTrace or SystemTap support - built in has little effect on execution speed until probes are enabled - at runtime by the <span class="command"><strong>dtrace</strong></span> - or <span class="command"><strong>stap</strong></span> programs. -</p> + To monitor the statistics values as they are updated + include the --enable-perfmon-statistics configuration option. + This option generates probe points for updates to many of the + counters whose values are displayed by the db_stat utility or + returned by the various statistics functions. The "cache" + example script uses a few of these probe points. + </p> <p> - The list of available events may be displayed by running 'make listprobes' - after building the libdb-5.3 shared library. -</p> + Performance Event Monitoring is intended to be suitable for + production applications. Running Berkeley DB with DTrace or + SystemTap support built in has little effect on execution + speed until probes are enabled at runtime by the + <span class="command"><strong>dtrace</strong></span> or <span class="command"><strong>stap</strong></span> + programs. + </p> + <p> + The list of available events may be displayed by running + 'make listprobes' after building the libdb-6.1 + shared library. + </p> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> @@ -151,30 +157,32 @@ </div> </div> </div> + <p> + The DTrace probe provider for Berkeley DB is named + 'bdb'. A simple dtrace command to monitor all + dtrace-enabled Berkeley DB activity in the system is: + </p> <p> - The DTrace probe provider for Berkeley DB is named 'bdb'. A simple - dtrace command to monitor all dtrace-enabled Berkeley DB activity - in the system is: - </p> + <code class="code"> dtrace -Zn 'bdb*::: { printf("%s", probename); }' + </code> + </p> <p> - <code class="code"> - dtrace -Zn 'bdb*::: { printf("%s", probename); }' - </code> - </p> + DTrace requires elevated privileges in order to run. On + Solaris you can avoid running as root by giving any users + who need to run <span class="command"><strong>dtrace</strong></span> the dtrace_proc + or dtrace_user privilege in + <span class="command"><strong>/etc/user_attr</strong></span>. + </p> <p> - DTrace requires elevated privileges in order to run. On Solaris you can - avoid running as root by giving any users who need to run - <span class="command"><strong>dtrace</strong></span> the dtrace_proc or dtrace_user - privilege in <span class="command"><strong>/etc/user_attr</strong></span>. - </p> - <p> - DTrace works on both 32 and 64 bit applications. However, when tracing - a 32-bit application on a 64-bit processor it might be necessary to pass - a "32 bit" option to <span class="command"><strong>dtrace</strong></span>. Without this option - the D language might use a pointer size of 8 bytes, which could cause - pointer values (and structures containing them) to be processed incorrectly. - Use the <code class="code">-32</code> option on Solaris; on Mac OS X use <code class="code">-arch i386</code>. - </p> + DTrace works on both 32 and 64 bit applications. + However, when tracing a 32-bit application on a 64-bit + processor it might be necessary to pass a "32 bit" option + to <span class="command"><strong>dtrace</strong></span>. Without this option the D + language might use a pointer size of 8 bytes, which could + cause pointer values (and structures containing them) to + be processed incorrectly. Use the <code class="code">-32</code> option + on Solaris; on Mac OS X use <code class="code">-arch i386</code>. + </p> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> @@ -184,141 +192,159 @@ </div> </div> </div> + <p> + SystemTap looks up its static userspace markers in the + library name specified in the <span class="command"><strong>stap</strong></span> + script. A simple <span class="command"><strong>stap</strong></span> command to list + the probes of the default Berkeley DB installation is: + </p> <p> - SystemTap looks up its static userspace markers in the library name - specified in the <span class="command"><strong>stap</strong></span> script. - A simple <span class="command"><strong>stap</strong></span> command to list the probes - of the default Berkeley DB installation is: - </p> + <code class="code"> stap -l 'process("/usr/local/BerkeleyDB.6.1/lib/libdb-6.1.so").mark("*")' + </code> + </p> <p> - <code class="code"> - stap -l 'process("/usr/local/BerkeleyDB.5.3/lib/libdb-5.3.so").mark("*")' - </code> - </p> - <p> - Berkeley DB supports SystemTap version 1.1 or later. Building with - userspace marker support requires <code class="filename">sys/sdt.h</code>, - which is often available in the package <code class="filename">systemtap-sdt-devel</code>. - Running <span class="command"><strong>stap</strong></span> with userspace markers requires that the - kernel have "utrace" support; see - <a class="ulink" href="http://sourceware.org/systemtap/wiki/utrace" target="_top">http://sourceware.org/systemtap/wiki/utrace</a> for more information. - </p> - <p> - SystemTap needs elevated privileges in order to run. You can avoid running as - root by adding the users who need to run <span class="command"><strong>stap</strong></span> - to the group stapdev. - </p> + Berkeley DB supports SystemTap version 1.1 or later. + Building with userspace marker support requires + <code class="filename">sys/sdt.h</code>, which is often + available in the package + <code class="filename">systemtap-sdt-devel</code>. Running + <span class="command"><strong>stap</strong></span> with userspace markers + requires that the kernel have "utrace" support; see <a class="ulink" href="http://sourceware.org/systemtap/wiki/utrace" target="_top">http://sourceware.org/systemtap/wiki/utrace</a> + for more information. + </p> + <p> + SystemTap needs elevated privileges in order to run. + You can avoid running as root by adding the users who need + to run <span class="command"><strong>stap</strong></span> to the group stapdev. + </p> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> - <h3 class="title"><a id="program_perfmon_examples"></a>Example Scripts</h3> + <h3 class="title"><a id="program_perfmon_examples"></a>Example + Scripts</h3> </div> </div> </div> - <p> - Berkeley DB includes several example scripts, in both DTrace and SystemTap versions. - The DTrace examples end with a <code class="filename">.d</code> suffix and are located in - <code class="filename">util/dtrace</code>. The SystemTap examples have a - <code class="filename">.stp</code> suffix and can found be in - <code class="filename">util/systemtap</code>. The Berkeley DB shared library name, - including any necessary path, - is expected as the first parameter to the SystemTap examples. - </p> + <p> + Berkeley DB includes several example scripts, in both + DTrace and SystemTap versions. The DTrace examples end + with a <code class="filename">.d</code> suffix and are located in + <code class="filename">util/dtrace</code>. The SystemTap + examples have a <code class="filename">.stp</code> suffix and can + found be in <code class="filename">util/systemtap</code>. The + Berkeley DB shared library name, including any necessary + path, is expected as the first parameter to the SystemTap + examples. + </p> <div class="variablelist"> <dl> <dt> <span class="term">apicalls</span> </dt> <dd> - This script graphs the count of the main API calls. The result - is grouped by thread of the target process. - </dd> + This script graphs the count of the + main API calls. The result is grouped by + thread of the target process. + </dd> <dt> <span class="term">apitimes</span> </dt> <dd> - This script graphs the time spent in the main API calls, - grouped by thread. - </dd> + This script graphs the time spent in + the main API calls, grouped by thread. + </dd> <dt> <span class="term"> apitrace </span> </dt> <dd> - This script displays the entry to and return from each of the - main API calls. - </dd> + This script displays the entry to and + return from each of the main API calls. + </dd> <dt> <span class="term"> cache </span> </dt> <dd> - This script displays overall and per-file buffer cache statistics - every <span class="emphasis"><em>N</em></span> (default: 1) seconds for - <span class="emphasis"><em>M</em></span> (default: 60) intervals. - It prints the number of cache hits, misses, and evictions for - each file with any activity during the interval. - </dd> + This script displays overall and + per-file buffer cache statistics every + <span class="emphasis"><em>N</em></span> (default: 1) + seconds for <span class="emphasis"><em>M</em></span> (default: + 60) intervals. It prints the number of cache + hits, misses, and evictions for each file with + any activity during the interval. + </dd> <dt> <span class="term"> dbdefs</span> </dt> - <dd> - This contains DTrace-compatible declarations of Berkeley DB - data structures returned from probe points. - There is no Linux equivalent; SystemTap can obtain type - information directly from the debugging symbols compiled - into the libdb*-5.3.so shared library. - </dd> + <dd> + This contains DTrace-compatible + declarations of Berkeley DB data structures + returned from probe points. There is no Linux + equivalent; SystemTap can obtain type + information directly from the debugging + symbols compiled into the + libdb*-6.1.so shared library. + </dd> <dt> <span class="term"> locktimes </span> </dt> - <dd> - This script graphs the time spent waiting for DB page locks. - The result times in nanoseconds are grouped by filename, - pgno, and lock_mode. The optional integer maxcount parameter - directs the script to exit once that many page lock waits - have been measured. - </dd> + <dd> + This script graphs the time spent + waiting for DB page locks. The result times in + nanoseconds are grouped by filename, pgno, and + lock_mode. The optional integer maxcount + parameter directs the script to exit once that + many page lock waits have been measured. + </dd> <dt> <span class="term"> locktimesid </span> </dt> <dd> - This is similar to the locktimes script above, except that it displays - the 20 byte file identifier rather than the file name. This can be - useful when there are several environments involved, or when database - files are recreated during the monitoring period. - </dd> + This is similar to the locktimes script + above, except that it displays the 20 byte + file identifier rather than the file name. + This can be useful when there are several + environments involved, or when database files + are recreated during the monitoring period. + </dd> <dt> <span class="term"> mutex </span> </dt> - <dd> - This script measures mutex wait periods, summarizing the results two ways. - <div class="itemizedlist"><ul type="disc"><li> - The first grouping is by mutex, mode (exclusive or shared), - and thread id. - </li><li> - The second grouping is by the mutex category and - mode (exclusive or shared). - The mutex categories are the MTX_XXX definitions in - <code class="filename">dbinc/mutex.h</code>. - </li></ul></div></dd> + <dd> + This script measures mutex wait + periods, summarizing the results two ways. + <div class="itemizedlist"><ul type="disc"><li> + The first grouping is by mutex, + mode (exclusive or shared), and thread + id. + </li><li> + The second grouping is by the + mutex category and mode (exclusive or + shared). The mutex categories are the + MTX_XXX definitions in + <code class="filename">dbinc/mutex.h</code>. + </li></ul></div></dd> <dt> <span class="term"> showerror </span> </dt> <dd> - This script displays the application stack when the basic error - routines are called. It provides additional information about - an error, beyond the string sent to the diagnostic output. - </dd> + This script displays the application + stack when the basic error routines are + called. It provides additional information + about an error, beyond the string sent to the + diagnostic output. + </dd> </dl> </div> <p> -</p> - <p> - These examples are designed to trace a single process. They run until - interrupted, or the monitored process exits, or the limit as given - in an optional 'maximum count' argument has been reached. - </p> + </p> + <p> + These examples are designed to trace a single process. + They run until interrupted, or the monitored process + exits, or the limit as given in an optional 'maximum + count' argument has been reached. + </p> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> @@ -329,622 +355,613 @@ </div> </div> <p> - The events are described below as if they were functions with ANSI C-style - signatures. The values each event provides to DTrace or SystemTap are - the arguments to the functions. - </p> - <p> + The events are described below as if they were + functions with ANSI C-style signatures. The values each + event provides to DTrace or SystemTap are the arguments to + the functions. + </p> + <p> + + + </p> <div class="variablelist"> <dl> <dt> - <span class="term"> -alloc -</span> + <span class="term"> alloc </span> </dt> <dd> - <p> -The alloc class covers the allocation of "on disk" database pages. -</p> + <p> + The alloc class covers the allocation of "on disk" + database pages. + </p> <div class="variablelist"> <dl> <dt> - <span class="term">alloc-new (char *file, char *db, unsigned pgno, unsigned type, - struct _db_page *pg, int ret); -</span> + <span class="term">alloc-new (char *file, char *db, unsigned + pgno, unsigned type, struct _db_page *pg, int + ret); </span> </dt> <dd> -An attempt to allocate a database page of type 'type' for database 'db' -returned 'ret'. If the allocation succeeded then ret is 0, pgno is the -location of the new page, and pg is the address of the new page. -Details of the page can be extracted from the pg pointer. -</dd> + An attempt to allocate a database page + of type 'type' for database 'db' returned + 'ret'. If the allocation succeeded then ret is + 0, pgno is the location of the new page, and + pg is the address of the new page. Details of + the page can be extracted from the pg pointer. + </dd> <dt> - <span class="term"> -alloc-free (char *file, char *db, unsigned pgno, unsigned ret); -</span> + <span class="term"> alloc-free (char *file, char *db, unsigned + pgno, unsigned ret); </span> </dt> - <dd> -An attempt to free the page 'pgno' of 'db' returned 'ret'. -When successful the page is returned to the free list -or the file is truncated. -</dd> + <dd> + An attempt to free the page 'pgno' of + 'db' returned 'ret'. When successful the page + is returned to the free list or the file is + truncated. + </dd> <dt> - <span class="term">alloc-btree_split (char *file, char *db, unsigned pgno, unsigned parent, - unsigned level); -</span> + <span class="term">alloc-btree_split (char *file, char *db, + unsigned pgno, unsigned parent, unsigned + level); </span> </dt> <dd> -A btree split of pgno in db is being attempted. The parent page number -and the level in the btree are also provided. -</dd> + A btree split of pgno in db is being + attempted. The parent page number and the + level in the btree are also provided. + </dd> </dl> </div> </dd> <dt> - <span class="term"> -db -</span> + <span class="term"> db </span> </dt> <dd> - <p> -These DB API calls provide the name of the file and database being accessed. -In-memory databases will have a NULL (0) file name address. The db name will -be null unless subdatabases are in use. -</p> + <p> + These DB API calls provide the name of the file and + database being accessed. In-memory databases will have + a NULL (0) file name address. The db name will be null + unless subdatabases are in use. + </p> <div class="variablelist"> <dl> <dt> - <span class="term"> -db-open (char *file, char *db, unsigned flags, uint8_t *fileid); -</span> + <span class="term"> db-open (char *file, char *db, unsigned + flags, uint8_t *fileid); </span> </dt> <dd> -The database or file name was opened. The 20 byte unique fileid can be -used to keep track of databases as they are created and destroyed. -</dd> + The database or file name was opened. + The 20 byte unique fileid can be used to keep + track of databases as they are created and + destroyed. + </dd> <dt> - <span class="term"> -db-close (char *file, char *db, unsigned flags, uint8_t *fileid); -</span> + <span class="term"> db-close (char *file, char *db, unsigned + flags, uint8_t *fileid); </span> </dt> - <dd> -The database or file name was closed. -</dd> + <dd> + The database or file name was closed. + </dd> <dt> - <span class="term">db-cursor (char *file, char *db, unsigned txnid, unsigned flags, - uint8_t *fileid); -</span> + <span class="term">db-cursor (char *file, char *db, unsigned + txnid, unsigned flags, uint8_t *fileid); </span> </dt> - <dd> -An attempt is being made to open a cursor on the database or file. -</dd> + <dd> + An attempt is being made to open a + cursor on the database or file. + </dd> <dt> - <span class="term">db-get (char *file, char *db, unsigned txnid, DBT *key, DBT *data, - unsigned flags); -</span> + <span class="term">db-get (char *file, char *db, unsigned + txnid, DBT *key, DBT *data, unsigned flags); </span> </dt> - <dd> -An attempt is being made to get data from a db. -</dd> + <dd> + An attempt is being made to get data + from a db. + </dd> <dt> - <span class="term">db-put (char *file, char *db, unsigned txnid, DBT *key, DBT *data, - unsigned flags); -</span> + <span class="term">db-put (char *file, char *db, unsigned + txnid, DBT *key, DBT *data, unsigned flags); </span> </dt> <dd> -An attempt is being made to put data to a db. -</dd> + An attempt is being made to put data to + a db. + </dd> <dt> - <span class="term"> -db-del (char *file, char *db, unsigned txnid, DBT *key, unsigned flags); -</span> + <span class="term"> db-del (char *file, char *db, unsigned + txnid, DBT *key, unsigned flags); </span> </dt> <dd> -An attempt is being made to delete data from a db. -</dd> + An attempt is being made to delete data + from a db. + </dd> </dl> </div> </dd> <dt> - <span class="term"> -lock -</span> + <span class="term"> lock </span> </dt> <dd> - <p> -The lock class monitors the transactional consistency locks: page, record, -and database. It also monitors the non-transactional file handle locks. -</p> + <p> + The lock class monitors the transactional + consistency locks: page, record, and database. It also + monitors the non-transactional file handle locks. + </p> <div class="variablelist"> <dl> <dt> - <span class="term"> -lock-suspend (DBT *lock, db_lockmode_t lock_mode); -</span> + <span class="term"> lock-suspend (DBT *lock, db_lockmode_t + lock_mode); </span> </dt> <dd> -The thread is about to suspend itself because another locker already has -a conflicting lock on object 'lock'. The lock DBT's data points to -a __db_ilock structure, except for the atypical program which uses -application specific locking. -</dd> + The thread is about to suspend itself + because another locker already has a + conflicting lock on object 'lock'. The lock + DBT's data points to a __db_ilock structure, + except for the atypical program which uses + application specific locking. + </dd> <dt> - <span class="term"> -lock-resume (DBT *lock, db_lockmode_t lock_mode); -</span> + <span class="term"> lock-resume (DBT *lock, db_lockmode_t + lock_mode); </span> </dt> - <dd> -The thread is awakening from a suspend. -</dd> + <dd> + The thread is awakening from a suspend. + </dd> <dt> - <span class="term"> -lock-put (struct __sh_dbt *lock, unsigned flags); -</span> + <span class="term"> lock-put (struct __sh_dbt *lock, unsigned + flags); </span> </dt> - <dd> -The lock is being freed. -</dd> + <dd> + The lock is being freed. + </dd> <dt> - <span class="term"> -lock-put_reduce_count (struct __sh_dbt *lock, unsigned flags); -</span> + <span class="term"> lock-put_reduce_count (struct __sh_dbt + *lock, unsigned flags); </span> </dt> - <dd> -The lock would have been freed except that its refcount was greater -than 1. -</dd> + <dd> + The lock would have been freed except + that its refcount was greater than 1. + </dd> </dl> </div> - <p> -These lock counters are included by --enable-perfmon-statistics. -</p> + <p> + These lock counters are included by + --enable-perfmon-statistics. + </p> <div class="variablelist"> <dl> <dt> - <span class="term">lock-deadlock (unsigned st_ndeadlocks, unsigned locker_id, - struct __sh_dbt *lock_obj); -</span> + <span class="term">lock-deadlock (unsigned st_ndeadlocks, + unsigned locker_id, struct __sh_dbt + *lock_obj); </span> </dt> - <dd> -The locker_id's lock request in lock_obj is about to be aborted in -order to resolve a deadlock. The lock region's st_ndeadlocks has -been incremented. -</dd> + <dd> + The locker_id's lock request in + lock_obj is about to be aborted in order to + resolve a deadlock. The lock region's + st_ndeadlocks has been incremented. + </dd> <dt> - <span class="term"> -lock-nowait_notgranted (unsigned count, DBT *lock, unsigned locker_id); -</span> + <span class="term"> lock-nowait_notgranted (unsigned count, DBT + *lock, unsigned locker_id); </span> </dt> <dd> -A DB_LOCK_NOWAIT lock request by locker_id would have had to wait. -The lock regions's st_lock_nowait has been incremented and -the request returns DB_LOCK_NOTGRANTED. -</dd> + A DB_LOCK_NOWAIT lock request by + locker_id would have had to wait. The lock + regions's st_lock_nowait has been incremented + and the request returns DB_LOCK_NOTGRANTED. + </dd> <dt> - <span class="term"> -lock-steal (unsigned st_locksteals, unsigned from, unsigned to); -</span> + <span class="term"> lock-steal (unsigned st_locksteals, + unsigned from, unsigned to); </span> </dt> <dd> -A lock is being stolen from one partition for another one. -The 'from' lock partition's st_locksteals has been incremented. -</dd> + A lock is being stolen from one + partition for another one. The 'from' lock + partition's st_locksteals has been + incremented. + </dd> <dt> - <span class="term"> -lock-object_steal (unsigned st_objectsteals, unsigned from, unsigned to); -</span> + <span class="term"> lock-object_steal (unsigned + st_objectsteals, unsigned from, unsigned to); </span> </dt> <dd> -A lock object is being stolen from one partition for another one. -The 'from' lock partition's st_objectsteals has been incremented. -</dd> + A lock object is being stolen from one + partition for another one. The 'from' lock + partition's st_objectsteals has been + incremented. + </dd> <dt> - <span class="term"> -lock-locktimeout (unsigned st_nlocktimeouts, const DBT *lock); -</span> + <span class="term"> lock-locktimeout (unsigned + st_nlocktimeouts, const DBT *lock); </span> </dt> <dd> -A lock wait expired due to the lock request timeout. -</dd> + A lock wait expired due to the lock + request timeout. + </dd> <dt> - <span class="term"> -lock-txntimeout (unsigned st_ntxntimeouts, const DBT *lock); -</span> + <span class="term"> lock-txntimeout (unsigned st_ntxntimeouts, + const DBT *lock); </span> </dt> <dd> -A lock wait expired due to the transaction's timeout. -</dd> + A lock wait expired due to the + transaction's timeout. + </dd> <dt> - <span class="term"> -lock-nlockers (unsigned active, unsigned locker_id); -</span> + <span class="term"> lock-nlockers (unsigned active, unsigned + locker_id); </span> </dt> - <dd> -The allocation or deallocation of the locker id changed the number -of active locker identifiers. -</dd> + <dd> The allocation or deallocation of the + locker id changed the number of active locker + identifiers. </dd> <dt> - <span class="term"> -lock-maxnlockers (unsigned new_max_active, unsigned locker_id); -</span> + <span class="term"> lock-maxnlockers (unsigned new_max_active, + unsigned locker_id); </span> </dt> <dd> -The allocation of the locker id set a new maximum -number of active locker identifiers. -</dd> + The allocation of the locker id set a + new maximum number of active locker + identifiers. + </dd> </dl> </div> </dd> <dt> - <span class="term"> -mpool -</span> + <span class="term"> mpool </span> </dt> <dd> <p> -The mpool class monitors the allocation and management of memory, -including the cache. -</p> + The mpool class monitors the allocation and + management of memory, including the cache. + </p> <div class="variablelist"> <dl> <dt> - <span class="term"> -mpool-read (char *file, unsigned pgno, struct __bh *buf); -</span> + <span class="term"> mpool-read (char *file, unsigned pgno, + struct __bh *buf); </span> </dt> <dd> -Read a page from file into buf. -</dd> + Read a page from file into buf. + </dd> <dt> - <span class="term"> -mpool-write (char *file, unsigned pgno, struct __bh *buf); -</span> + <span class="term"> mpool-write (char *file, unsigned pgno, + struct __bh *buf); </span> </dt> <dd> -Write a page from buf to file. -</dd> + Write a page from buf to file. + </dd> <dt> - <span class="term"> -mpool-env_alloc (unsigned size, unsigned region_id, unsigned reg_type); -</span> + <span class="term"> mpool-env_alloc (unsigned size, unsigned + region_id, unsigned reg_type); </span> </dt> - <dd> -This is an attempt to allocate size bytes from region_id. -The reg_type is one of the reg_type_t enum values. -</dd> + <dd> + This is an attempt to allocate size + bytes from region_id. The reg_type is one of + the reg_type_t enum values. + </dd> <dt> - <span class="term"> -mpool-evict (char *file, unsigned pgno, struct __bh *buf); -</span> + <span class="term"> mpool-evict (char *file, unsigned pgno, + struct __bh *buf); </span> </dt> <dd> -The page is about to be removed from the cache. -</dd> + The page is about to be removed from + the cache. + </dd> <dt> - <span class="term">mpool-alloc_wrap (unsigned alloc_len, int region_id, int wrap_count, - int put_counter); -</span> + <span class="term">mpool-alloc_wrap (unsigned alloc_len, int + region_id, int wrap_count, int put_counter); </span> </dt> <dd> -The memory allocator has incremented wrap_count after searching through -the entire region without being able to fulfill the request for -alloc_len bytes. As wrap_count increases the library makes more effort -to allocate space. -</dd> + The memory allocator has incremented + wrap_count after searching through the entire + region without being able to fulfill the + request for alloc_len bytes. As wrap_count + increases the library makes more effort to + allocate space. + </dd> </dl> </div> - <p> -These mpool counters are included by --enable-perfmon-statistics. -</p> + <p> + These mpool counters are included by + --enable-perfmon-statistics. + </p> <div class="variablelist"> <dl> <dt> - <span class="term"> -mpool-clean_eviction (unsigned st_ro_evict, unsigned region_id); -</span> + <span class="term"> mpool-clean_eviction (unsigned st_ro_evict, + unsigned region_id); </span> </dt> - <dd> -The eviction of a clean page from a cache incremented st_ro_evict. -</dd> + <dd> + The eviction of a clean page from a + cache incremented st_ro_evict. + </dd> <dt> - <span class="term"> -mpool-dirty_eviction (unsigned st_rw_evict, unsigned region_id); -</span> + <span class="term"> mpool-dirty_eviction (unsigned st_rw_evict, + unsigned region_id); </span> </dt> - <dd> -The eviction of a dirty page from a cache incremented st_rw_evict. -The page has already been written out. -</dd> + <dd> + The eviction of a dirty page from a + cache incremented st_rw_evict. The page has + already been written out. + </dd> <dt> - <span class="term"> -mpool-fail (unsigned failure_count, unsigned alloc_len, unsigned region_id); -</span> + <span class="term"> mpool-fail (unsigned failure_count, + unsigned alloc_len, unsigned region_id); </span> </dt> <dd> -An attempt to allocate memory from region_id failed. -</dd> + An attempt to allocate memory from + region_id failed. + </dd> <dt> - <span class="term"> -mpool-hash_search (unsigned st_hash_searches, char *file, unsigned pgno); -</span> + <span class="term"> mpool-hash_search (unsigned + st_hash_searches, char *file, unsigned pgno); </span> </dt> <dd> -A search for pgno of file incremented st_hash_searches. -</dd> + A search for pgno of file incremented + st_hash_searches. </dd> <dt> - <span class="term"> -mpool-hash_examined (unsigned st_hash_examined, char *file, unsigned pgno); -</span> + <span class="term"> mpool-hash_examined (unsigned + st_hash_examined, char *file, unsigned pgno); </span> </dt> <dd> -A search for pgno of file increased st_hash_examined by the number -of hash buckets examined. -</dd> + A search for pgno of file increased + st_hash_examined by the number of hash buckets + examined. + </dd> <dt> - <span class="term"> -mpool-hash_longest (unsigned st_hash_longest, char *file, unsigned pgno); -</span> + <span class="term"> mpool-hash_longest (unsigned + st_hash_longest, char *file, unsigned pgno); </span> </dt> <dd> -A search for pgno of file set a new maximum st_hash_longest value. -</dd> + A search for pgno of file set a new + maximum st_hash_longest value. + </dd> <dt> - <span class="term"> -mpool-map (unsigned st_map, char *file, unsigned pgno); -</span> + <span class="term"> mpool-map (unsigned st_map, char *file, + unsigned pgno); </span> </dt> - <dd> -A file's st_map count was incremented after a page was mapped into -memory. The mapping might have caused disk I/O. -</dd> + <dd> + A file's st_map count was incremented + after a page was mapped into memory. The + mapping might have caused disk I/O. + </dd> <dt> - <span class="term"> -mpool-hit (unsigned st_cache_hit, char *file, unsigned pgno); -</span> + <span class="term"> mpool-hit (unsigned st_cache_hit, char + *file, unsigned pgno); </span> </dt> - <dd> -The hit count was incremented because pgno from file was found -in the cache. -</dd> + <dd> + The hit count was incremented because + pgno from file was found in the cache. + </dd> <dt> - <span class="term"> -mpool-miss (unsigned st_cache_miss, char *file, unsigned pgno); -</span> + <span class="term"> mpool-miss (unsigned st_cache_miss, char + *file, unsigned pgno); </span> </dt> <dd> -The miss count was incremented because pgno from file was -not already present in the cache. -</dd> + The miss count was incremented because + pgno from file was not already present in the + cache. + </dd> <dt> - <span class="term"> -mpool-page_create (unsigned st_page_create, char *file, unsigned pgno); -</span> + <span class="term"> mpool-page_create (unsigned st_page_create, + char *file, unsigned pgno); </span> </dt> <dd> -The st_page_create field was incremented because -the pgno of file was created in the cache. -</dd> + The st_page_create field was + incremented because the pgno of file was + created in the cache. + </dd> <dt> - <span class="term"> -mpool-page_in (unsigned st_page_in, char *file, unsigned pgno); -</span> + <span class="term"> mpool-page_in (unsigned st_page_in, char + *file, unsigned pgno); </span> </dt> - <dd> -The st_page_in field was incremented because -the pgno from file was read into the cache. -</dd> + <dd> + The st_page_in field was incremented + because the pgno from file was read into the + cache. + </dd> <dt> - <span class="term"> -mpool-page_out (unsigned st_page_out, char *file, unsigned pgno); -</span> + <span class="term"> mpool-page_out (unsigned st_page_out, char + *file, unsigned pgno); </span> </dt> - <dd> -The st_page_out field was incremented because -the pgno from file was written out. -</dd> + <dd> + The st_page_out field was incremented + because the pgno from file was written out. + </dd> </dl> </div> </dd> <dt> - <span class="term"> -mutex -</span> + <span class="term"> mutex </span> </dt> <dd> - <p> -The mutex category monitors includes shared latches. The alloc_id value -is one of the MTX_XXX definitions from dbinc/mutex.h -</p> + <p> + The mutex category monitors includes shared + latches. The alloc_id value is one of the MTX_XXX + definitions from dbinc/mutex.h + </p> <div class="variablelist"> <dl> <dt> - <span class="term">mutex-suspend (unsigned mutex, unsigned excl, unsigned alloc_id, - struct __db_mutex_t *mutexp); -</span> + <span class="term">mutex-suspend (unsigned mutex, unsigned + excl, unsigned alloc_id, struct __db_mutex_t + *mutexp); </span> </dt> <dd> -This thread is about to suspend itself because a thread has the -mutex or shared latch locked in a mode which conflicts with the -this request. -</dd> + This thread is about to suspend itself + because a thread has the mutex or shared latch + locked in a mode which conflicts with the this + request. + </dd> <dt> - <span class="term">mutex-resume (unsigned mutex, unsigned excl, unsigned alloc_id, - struct __db_mutex_t *mutexp); -</span> + <span class="term">mutex-resume (unsigned mutex, unsigned excl, + unsigned alloc_id, struct __db_mutex_t + *mutexp); </span> </dt> - <dd> -The thread is returning from a suspend and will attempt to obtain -the mutex or shared latch again. It might need to suspend again. -</dd> + <dd> + The thread is returning from a suspend + and will attempt to obtain the mutex or shared + latch again. It might need to suspend again. + </dd> </dl> </div> - <p> -These mutex counters are included by --enable-perfmon-statistics. -</p> + <p> + These mutex counters are included by + --enable-perfmon-statistics. + </p> <div class="variablelist"> <dl> <dt> - <span class="term"> -mutex-set_nowait (unsigned mutex_set_nowait, unsigned mutex); -</span> + <span class="term"> mutex-set_nowait (unsigned + mutex_set_nowait, unsigned mutex); </span> </dt> - <dd> -Increment the count of times that the mutex was free when trying -to lock it. -</dd> + <dd> + Increment the count of times that the + mutex was free when trying to lock it. + </dd> <dt> - <span class="term"> -mutex-set_wait (unsigned mutex_set_wait, unsigned mutex); -</span> + <span class="term"> mutex-set_wait (unsigned mutex_set_wait, + unsigned mutex); </span> </dt> - <dd> -Increment the count of times that the mutex was busy when trying -to lock it. -</dd> + <dd> + Increment the count of times that the + mutex was busy when trying to lock it. + </dd> <dt> - <span class="term"> -mutex-set_rd_nowait (unsigned mutex_set_rd_nowait, unsigned mutex); -</span> + <span class="term"> mutex-set_rd_nowait (unsigned + mutex_set_rd_nowait, unsigned mutex); </span> </dt> - <dd> -Increment the count of times that the shared latch was free -when trying to get a shared lock on it. -</dd> + <dd> + Increment the count of times that the + shared latch was free when trying to get a + shared lock on it. + </dd> <dt> - <span class="term"> -mutex-set_rd_wait (unsigned mutex_set_rd_wait, unsigned mutex); -</span> + <span class="term"> mutex-set_rd_wait (unsigned + mutex_set_rd_wait, unsigned mutex); </span> </dt> <dd> -Increment the count of times that the shared latch was already -exclusively latched when trying to get a shared lock on it. -</dd> + Increment the count of times that the + shared latch was already exclusively latched + when trying to get a shared lock on it. + </dd> <dt> - <span class="term"> -mutex-hybrid_wait (unsigned hybrid_wait, unsigned mutex); -</span> + <span class="term"> mutex-hybrid_wait (unsigned hybrid_wait, + unsigned mutex); </span> </dt> - <dd> -Increment the count of times that a hybrid mutex had to block -on its condition variable. n a busy system this might happen -several times before the corresponding hybrid_wakeup. -</dd> + <dd> + Increment the count of times that a + hybrid mutex had to block on its condition + variable. n a busy system this might happen + several times before the corresponding + hybrid_wakeup. + </dd> <dt> - <span class="term"> -mutex-hybrid_wakeup (unsigned hybrid_wakeup, unsigned mutex); -</span> + <span class="term"> mutex-hybrid_wakeup (unsigned + hybrid_wakeup, unsigned mutex); </span> </dt> <dd> -Increment the count of times that a hybrid mutex finished -one or more waits for its condition variable. -</dd> + Increment the count of times that a + hybrid mutex finished one or more waits for + its condition variable. + </dd> </dl> </div> </dd> <dt> - <span class="term"> -txn -</span> + <span class="term"> txn </span> </dt> <dd> - <p> -The txn category covers the basic transaction operations. -</p> + <p> + The txn category covers the basic transaction + operations. + </p> <div class="variablelist"> <dl> <dt> - <span class="term"> -txn-begin (unsigned txnid, unsigned flags); -</span> + <span class="term"> txn-begin (unsigned txnid, unsigned flags); </span> </dt> - <dd> -A transaction was successfully begun. -</dd> + <dd> + A transaction was successfully begun. + </dd> <dt> - <span class="term"> -txn-commit (unsigned txnid, unsigned flags); -</span> + <span class="term"> txn-commit (unsigned txnid, unsigned + flags); </span> </dt> - <dd> -A transaction is starting to commit. -</dd> + <dd> + A transaction is starting to commit. + </dd> <dt> - <span class="term"> -txn-prepare (unsigned txnid, uint8_t *gid); -</span> + <span class="term"> txn-prepare (unsigned txnid, uint8_t *gid); </span> </dt> - <dd> -The transaction is starting to prepare, flushing the log -so that a future commit can be guaranteed to succeed. -The global identifier field is 128 bytes long. -</dd> + <dd> + The transaction is starting to prepare, + flushing the log so that a future commit can + be guaranteed to succeed. The global + identifier field is 128 bytes long. + </dd> <dt> - <span class="term"> -txn-abort (unsigned txnid); -</span> + <span class="term"> txn-abort (unsigned txnid); </span> </dt> <dd> -The transaction is about to abort. -</dd> + The transaction is about to abort. + </dd> </dl> </div> <p> -These txn counters are included by --enable-perfmon-statistics. -</p> + These txn counters are included by + --enable-perfmon-statistics. + </p> <div class="variablelist"> <dl> <dt> - <span class="term"> -txn-nbegins (unsigned st_nbegins, unsigned txnid); -</span> + <span class="term"> txn-nbegins (unsigned st_nbegins, unsigned + txnid); </span> </dt> - <dd> -Beginning the transaction incremented st_nbegins. -</dd> + <dd> + Beginning the transaction incremented + st_nbegins. + </dd> <dt> - <span class="term"> -txn-naborts (unsigned st_nbegins, unsigned txnid); -</span> + <span class="term"> txn-naborts (unsigned st_nbegins, unsigned + txnid); </span> </dt> - <dd> -Aborting the transaction incremented st_naborts. -</dd> + <dd> + Aborting the transaction incremented + st_naborts. + </dd> <dt> - <span class="term"> -txn-ncommits (unsigned st_ncommits, unsigned txnid); -</span> + <span class="term"> txn-ncommits (unsigned st_ncommits, + unsigned txnid); </span> </dt> <dd> -Committing the transaction incremented st_ncommits. -</dd> + Committing the transaction incremented + st_ncommits. + </dd> <dt> - <span class="term"> -txn-nactive (unsigned st_nactive, unsigned txnid); -</span> + <span class="term"> txn-nactive (unsigned st_nactive, unsigned + txnid); </span> </dt> - <dd> -Beginning or ending the transaction updated the number of active -transactions. -</dd> + <dd> + Beginning or ending the transaction + updated the number of active transactions. + </dd> <dt> - <span class="term"> -txn-maxnactive (unsigned st_maxnactive, unsigned txnid); -</span> + <span class="term"> txn-maxnactive (unsigned st_maxnactive, + unsigned txnid); </span> </dt> - <dd> -The creation of the transaction set a new maximum number -of active transactions. -</dd> + <dd> + The creation of the transaction set a + new maximum number of active transactions. + </dd> </dl> </div> </dd> </dl> </div> <p> - - </p> + </p> </div> </div> <div class="navfooter"> |
