PT-SUMMARY(1)

okay bestie, welcome to pt-summary(1) β€” straight from the User Contributed Perl Documentation crew. this is the page for the tool that gives your server a whole summary glow-up, and part 1 is right here. βœ¨πŸ’…

🌸 NAME 🌸

pt-summary β€” summarize system information nicely. it’s giving β€œneat little server report” energy, no cap. πŸŽ€

✨ SYNOPSIS ✨

Usage: pt-summary

pt-summary conveniently summarizes the status and configuration of a server. it is not a tuning tool or a diagnosis tool, bestie β€” it’s a report maker. it produces a report that is easy to diff and can be pasted into emails without losing the formatting. this tool works well on many types of Unix systems. πŸ¦‹

Download and run:

wget http://percona.com/get/pt-summary
bash ./pt-summary

⚠️ RISKS ⚠️

Percona Toolkit is mature, proven in the real world, and well tested, but all database tools can pose a risk to the system and the database server. before using this tool, please:

  • Read the tool’s documentation
  • Review the tool’s known β€œBUGS”
  • Test the tool on a non-production server
  • Backup your production server and verify the backups
like, do the backup. verify the backup. this is not the vibe to skip. 😭

πŸ’œ DESCRIPTION πŸ’œ

pt-summary runs a large variety of commands to inspect system status and configuration, saves the output into files in a temporary directory, and then runs Unix commands on these results to format them nicely. it works best when executed as a privileged user, but will also work without privileges, although some output might not be possible to generate without root. πŸ”₯

πŸŽ€ OUTPUT πŸŽ€

many of the outputs from this tool are deliberately rounded to show their magnitude but not the exact detail. this is called fuzzy-rounding. the idea is that it doesn’t matter whether a particular counter is 918 or 921; such a small variation is insignificant, and only makes the output hard to compare to other servers. fuzzy-rounding rounds in larger increments as the input grows. it begins by rounding to the nearest 5, then the nearest 10, nearest 25, and then repeats by a factor of 10 larger (50, 100, 250), and so on, as the input grows. lowkey genius. πŸ’…

the following is a simple report generated from a CentOS virtual machine, broken into sections with commentary following each section. some long lines are reformatted for clarity when reading this documentation as a manual page in a terminal. 🧚

# Percona Toolkit System Summary Report ######################
        Date | 2012-03-30 00:58:07 UTC (local TZ: EDT -0400)
    Hostname | localhost.localdomain
      Uptime | 20:58:06 up 1 day, 20 min, 1 user,
               load average: 0.14, 0.18, 0.18
      System | innotek GmbH; VirtualBox; v1.2 ()
 Service Tag | 0
    Platform | Linux
     Release | CentOS release 5.5 (Final)
      Kernel | 2.6.18-194.el5
Architecture | CPU = 32-bit, OS = 32-bit
   Threading | NPTL 2.5
    Compiler | GNU CC version 4.1.2 20080704 (Red Hat 4.1.2-48).
     SELinux | Enforcing
 Virtualized | VirtualBox

this section shows the current date and time, and a synopsis of the server and operating system. iconic little intro card. 🌈

# Processor ##################################################
  Processors | physical = 1, cores = 0, virtual = 1, hyperthreading = no
      Speeds | 1x2510.626
      Models | 1xIntel(R) Core(TM) i5-2400S CPU @ 2.50GHz
      Caches | 1x6144 KB

this section is derived from /proc/cpuinfo. πŸ“

# Memory #####################################################
       Total | 503.2M
        Free | 29.0M
        Used | physical = 474.2M, swap allocated = 1.0M,
               swap used = 16.0k, virtual = 474.3M
     Buffers | 33.9M
      Caches | 262.6M
       Dirty | 396 kB
     UsedRSS | 201.9M
  Swappiness | 60
 DirtyPolicy | 40, 10
 Locator  Size  Speed    Form Factor  Type    Type Detail
 =======  ====  =====    ===========  ====    ===========

information about memory is gathered from free. the Used statistic is the total of the rss sizes displayed by ps. the Dirty statistic for the cached value comes from /proc/meminfo. on Linux, the swappiness settings are gathered from sysctl. the final portion of this section is a table of the DIMMs, which comes from dmidecode. in this example there is no output. πŸ’€

# Mounted Filesystems ########################################
  Filesystem                       Size Used Type  Opts Mountpoint
  /dev/mapper/VolGroup00-LogVol00   15G  17% ext3  rw   /
  /dev/sda1                         99M  13% ext3  rw   /boot
  tmpfs                            252M   0% tmpfs rw   /dev/shm

the mounted filesystem section is a combination of information from mount and df. this section is skipped if you disable the --summarize-mounts option. 🫢

# Disk Schedulers And Queue Size #############################
        dm-0 | UNREADABLE
        dm-1 | UNREADABLE
         hdc | [cfq] 128
         md0 | UNREADABLE
         sda | [cfq] 128

the disk scheduler information is extracted from the /sys filesystem in Linux. πŸ”

# Disk Partitioning ######################################
Device       Type      Start        End               Size
============ ==== ========== ========== ==================
/dev/sda     Disk                              17179869184
/dev/sda1    Part          1         13           98703360
/dev/sda2    Part         14       2088        17059230720

information about disk partitioning comes from fdisk -l. πŸŽ€

# Kernel Inode State #########################################
dentry-state | 10697 8559  45 0  0  0
     file-nr | 960   0  50539
    inode-nr | 14059 8139

these lines are from the files of the same name in the /proc/sys/fs directory on Linux. read the proc man page to learn about the meaning of these files on your system. iykyk. πŸ’œ

# LVM Volumes ################################################
LV       VG         Attr   LSize   Origin Snap% Move Log Copy% Convert
LogVol00 VolGroup00 -wi-ao 269.00G
LogVol01 VolGroup00 -wi-ao   9.75G

this section shows the output of lvs. ✨

# RAID Controller ############################################
  Controller | No RAID controller detected

the tool can detect a variety of RAID controllers by examining lspci and dmesg information. if the controller software is installed on the system, in many cases it is able to execute status commands and show a summary of the RAID controller’s status and configuration. if your system is not supported, please file a bug report. πŸ›

# Network Config #############################################
  Controller | Intel Corporation 82540EM Gigabit Ethernet Controller
 FIN Timeout | 60
  Port Range | 61000

the network controllers attached to the system are detected from lspci. the TCP/IP protocol configuration parameters are extracted from sysctl. you can skip this section by disabling the --summarize-network option. 🌐

# Interface Statistics #######################################
interface rx_bytes rx_packets rx_errors tx_bytes tx_packets tx_errors
========= ======== ========== ========= ======== ========== =========
lo        60000000      12500         0 60000000      12500         0
eth0      15000000      80000         0  1500000      10000         0
sit0             0          0         0        0          0         0

interface statistics are gathered from ip -s link and are fuzzy-rounded. the columns are received and transmitted bytes, packets, and errors. you can skip this section by disabling the --summarize-network option. πŸ“‘

# Network Connections ########################################
  Connections from remote IP addresses
    127.0.0.1           2
  Connections to local IP addresses
    127.0.0.1           2
  Connections to top 10 local ports
    38346               1
    60875               1
  States of connections
    ESTABLISHED         5
    LISTEN              8

this section shows a summary of network connections, retrieved from netstat and fuzzy-rounded to make them easier to compare when the numbers grow large. there are two sub-sections showing how many connections there are per origin and destination IP address, and a sub-section showing the count of ports in use. the section ends with the count of the network connections’ states. you can skip this section by disabling the --summarize-network option. πŸ¦‹

# Top Processes ##############################################
  PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root  15   0  2072  628  540 S  0.0  0.1   0:02.55 init
    2 root  RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0
    3 root  34  19     0    0    0 S  0.0  0.0   0:00.03 ksoftirqd/0
    4 root  RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    5 root  10  -5     0    0    0 S  0.0  0.0   0:00.97 events/0
    6 root  10  -5     0    0    0 S  0.0  0.0   0:00.00 khelper
    7 root  10  -5     0    0    0 S  0.0  0.0   0:00.00 kthread
   10 root  10  -5     0    0    0 S  0.0  0.0   0:00.13 kblockd/0
   11 root  20  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid
# Notable Processes ##########################################
  PID    OOM    COMMAND
 2028    +0    sshd

this section shows the first few lines of top so that you can see what processes are actively using CPU time. the notable processes include the SSH daemon and any process whose out-of-memory-killer priority is set to 17. you can skip this section by disabling the --summarize-processes option. πŸ‘‘

# Simplified and fuzzy rounded vmstat (wait please) ##########
  procs  ---swap-- -----io---- ---system---- --------cpu--------
   r  b    si   so    bi    bo     ir     cs  us  sy  il  wa  st
   2  0     0    0     3    15     30    125   0   0  99   0   0
   0  0     0    0     0     0   1250    800   6  10  84   0   0
   0  0     0    0     0     0   1000    125   0   0 100   0   0
   0  0     0    0     0     0   1000    125   0   0 100   0   0
   0  0     0    0     0   450   1000    125   0   1  88  11   0
# The End ####################################################

this section is a trimmed-down sample of vmstat 1 5, so you can see the general status of the system at present. the values in the table are fuzzy-rounded, except for the CPU columns. you can skip this section by disabling the --summarize-processes option. πŸ’€βœ¨

✨ OPTIONS ✨

okay bestie, here's the whole menu, no cap πŸ’…

  • --config β€” type: string. Reads this comma-separated list of config files. Heads up though: if you're gonna use it, it has to be the very first option on the command line. Like, first in line, main character energy, no exceptions πŸ‘‘
  • --help β€” prints help and dips out. that's it, that's the whole vibe 🫢
  • --read-samples β€” type: string. Makes a whole report out of the files chillin' in this directory πŸ“βœ¨
  • --save-samples β€” type: string. Stashes all the collected data in this directory so you can keep it around πŸŽ€
  • --sleep β€” type: int; default: 5. How long to sleep while it's gathering samples from vmstat. literally a lil nap break 😴
  • --summarize-mounts β€” default: yes; negatable: yes. Reports on mounted filesystems and disk usage πŸ–₯️
  • --summarize-network β€” default: yes; negatable: yes. Reports on network controllers and configuration 🌐
  • --summarize-processes β€” default: yes; negatable: yes. Reports on top processes and the vmstat output πŸ”₯
  • --version β€” prints the tool's version and exits. quick lil flex πŸ’β€β™€οΈ

🌿 ENVIRONMENT 🌿

ngl this one's refreshingly simple: this tool does not use any environment variables. zero. none. nada. clean slate, no baggage ✨


πŸ–₯️ SYSTEM REQUIREMENTS πŸ–₯️

It just needs the Bourne shell (/bin/sh). that's the whole requirement, she's low maintenance πŸ’…


πŸ’€ BUGS πŸ’€

Wanna see the known bugs? They're all posted up here: <https://jira.percona.com/projects/PT/issues>.

Found something broken? Report it at <https://jira.percona.com/projects/PT>. and please, for the love of everything, include all of this in your report so people can actually help you πŸ™

  • 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 you can, throw in the debugging output too β€” just run the tool with PTDEBUG, peep the ENVIRONMENT section for the deets πŸ”


πŸ‘€ ATTENTION πŸ‘€

bestie this is important: using PTDEBUG might expose passwords. when debug is enabled, all command line parameters are shown in the output. all of them. so maybe don't do that on a screen-share with your whole team watching 😭

πŸ›οΈ DOWNLOADING πŸ›οΈ

Go vibe at <http://www.percona.com/software/percona-toolkit/> to grab the latest release of Percona Toolkit. or honestly, just do it straight from the command line like a legend:

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 snag individual tools from the latest release:

wget percona.com/get/TOOL

Just swap TOOL out for the name of whichever tool you're obsessed with 🧚


πŸ‘‘ AUTHORS πŸ‘‘

Baron Schwartz, Kevin van Zonneveld, and Brian Fraser β€” icons, all of them πŸ’œ


🌈 ABOUT PERCONA TOOLKIT 🌈

This tool is part of Percona Toolkit, a collection of advanced command-line tools for MySQL developed by Percona. Percona Toolkit got forked from two projects back in June, 2011: Maatkit and Aspersa. Those projects were created by Baron Schwartz and were primarily developed by him and Daniel Nichter. Go to <http://www.percona.com/software/> to learn about other free, open-source software from Percona πŸ¦‹


This program is copyright 2011-2026 Percona LLC and/or its affiliates, 2010-2011 Baron Schwartz.

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, version 2 along with this program; if not, see <https://www.gnu.org/licenses/>.


⭐ VERSION ⭐

pt-summary 3.7.1-4


and that's a wrap, bestie πŸŽ€ this page was brought to you by perl v5.42.2, dated 2026-09-01, filed lovingly under PT-SUMMARY(1) β€” go forth and summarize those processes, you gorgeous nerd πŸŒΈπŸ’–

πŸ“¦ where this page comes from