pt-pmp - Aggregate GDB stack traces for a selected program.
Usage: pt-pmp [OPTIONS] [FILES]
pt-pmp is a poor man’s profiler, inspired by http://poormansprofiler.org. It can create and summarize full stack traces of processes on Linux. Summaries of stack traces can be an invaluable tool for diagnosing what a process is waiting for.
The following section is included to inform users about the potential risks, whether known or unknown, of using this tool. The two main categories of risks are those created by the nature of the tool (e.g. read-only tools vs. read-write tools) and those created by bugs.
pt-pmp is a read-only tool. It should be very low-risk.
At the time of this release, we know of no bugs that could cause serious harm to users.
The authoritative source for updated information is always the online issue tracking system. Issues that affect this tool will be marked as such. You can see a list of such issues at the following URL: http://www.percona.com/bugs/pt-pmp.
See also “BUGS” for more information on filing bugs and getting help.
pt-pmp performs two tasks: it gets a stack trace, and it summarizes the stack trace. If a file is given on the command line, the tool skips the first step and just aggregates the file.
To summarize the stack trace, the tool extracts the function name (symbol) from each level of the stack, and combines them with commas. It does this for each thread in the output. Afterwards, it sorts similar threads together and counts how many of each one there are, then sorts them most-frequent first.
Options must precede files on the command line.
|-b BINARY||Which binary to trace (default mysqld)|
|-i ITERATIONS||How many traces to gather and aggregate (default 1)|
|-k KEEPFILE||Keep the raw traces in this file after aggregation|
|-l NUMBER||Aggregate only first NUMBER functions; 0=infinity (default 0)|
|-p PID||Process ID of the process to trace; overrides -b|
|-s SLEEPTIME||Number of seconds to sleep between iterations (default 0)|
This tool does not use any environment variables.
This tool requires Bash v3 or newer.
For a list of known bugs, see http://www.percona.com/bugs/pt-pmp.
Please report bugs at https://bugs.launchpad.net/percona-toolkit. Include the following information in your bug report:
* Complete command-line used to run the tool
* Tool “–version”
* MySQL version of all servers involved
* Output from the tool including STDERR
* Input files (log/dump/config files, etc.)
If possible, include debugging output by running the tool with PTDEBUG; see “ENVIRONMENT”.
Visit http://www.percona.com/software/percona-toolkit/ to download the latest release of Percona Toolkit. Or, get the latest release from the command line:
wget percona.com/get/percona-toolkit.tar.gz wget percona.com/get/percona-toolkit.rpm wget percona.com/get/percona-toolkit.deb
You can also get individual tools from the latest release:
Replace TOOL with the name of any tool.
ABOUT PERCONA TOOLKIT¶
This tool is part of Percona Toolkit, a collection of advanced command-line tools developed by Percona for MySQL support and consulting. Percona Toolkit was forked from two projects in June, 2011: Maatkit and Aspersa. Those projects were created by Baron Schwartz and developed primarily by him and Daniel Nichter, both of whom are employed by Percona. Visit http://www.percona.com/software/ for more software developed by Percona.
COPYRIGHT, LICENSE, AND WARRANTY¶
This program is copyright 2010-2011 Baron Schwartz, 2011 Percona Inc. Feedback and improvements are welcome.
THIS PROGRAM IS PROVIDED “AS IS” AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2; OR the Perl Artistic License. On UNIX and similar systems, you can issue `man perlgpl’ or `man perlartistic’ to read these licenses.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.