1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
<!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/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>WiredTiger: Track function calls</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="wiredtiger.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><a href="http://wiredtiger.com/"><img alt="Logo" src="LogoFinal-header.png" alt="WiredTiger" /></a></td>
<td style="padding-left: 0.5em;">
<div id="projectname">
 <span id="projectnumber">Version 3.2.1</span>
</div>
<div id="projectbrief"><!-- 3.2.1 --></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="banner">
<a href="https://github.com/wiredtiger/wiredtiger">Fork me on GitHub</a>
<a class="last" href="http://groups.google.com/group/wiredtiger-users">Join my user group</a>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('operation_tracking.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">Track function calls </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>When this option is enabled, WiredTiger tracks all API calls as well as certain functions that are deemed important for performance, such as eviction-related functions. Tracking is performed by generating a log record when the WiredTiger library enters and exits a tracked function. A log record contains a function name and its timestamp. For the purposes of efficiency, the timestamp on most platforms is obtained directly from the CPU register, so the units of time correspond to processor clock ticks.</p>
<p>By default, the log files are produced in the sub-directory <code>operation_tracking</code> of the database home directory. To change the destination directory, use the <code>path</code> sub-option of the <code>operation_tracking</code> option.</p>
<p>Operation tracking produces two kinds of files: the binary log files and the map file. The map file is needed to convert the binary logs into text. The map file contains the mapping between numeric function ids used in the log files and the human-readable function name. The map file is called <code>optrack-map.<pid></code>, where <code>pid</code> is the id of the process that generated the map file. Log files have names that look like <code>optrack.<pid>.<tid></code>, where <code>tid</code> is the numeric id of the WiredTiger session that generated the log file.</p>
<p>To convert binary log files to text, run the wt_optrack_decode.py script in the tools directory of the WiredTiger distribution. The script takes as arguments the list of log files and the name of the map file with the <code>-m</code> option. Suppose you would like to convert the log files generated by a process with <code>pid 1234</code>. Then you would run the script as follows:</p>
<div class="fragment"><div class="line">python wt_optrack_decode.py -m optrack-map.1234 optrack.1234.*</div></div><!-- fragment --><p>Enabling operation tracking may generate performance overhead if the tracked functions are executed frequently. Please be aware of this consequence and measure your performance before deciding whether to enable operation tracking. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="index.html">Reference Guide</a></li><li class="navelem"><a class="el" href="programming.html">Writing WiredTiger applications</a></li>
<li class="footer">Copyright (c) 2008-2019 MongoDB, Inc. All rights reserved. Contact <a href="mailto:info@wiredtiger.com">info@wiredtiger.com</a> for more information.</li>
</ul>
</div>
</body>
</html>
|