Skip to content

pt-summary

友好地汇总服务器系统信息(操作系统、内存、磁盘、网络等),输出便于 diff 和邮件粘贴的报告。

语法

bash
pt-summary

用法示例

pt-summary 是纯本机系统巡检工具,不连接数据库,命令可直接复制运行。

场景:出一份系统基线报告

变更前或故障排查时,快速汇总 CPU、内存、磁盘、网络等全貌,作为比对基线或贴进工单:

bash
pt-summary

场景:落盘采样数据留档

把各命令的原始采样保存到目录,便于事后在别的机器上重出报告,无需再次探测本机:

bash
pt-summary --save-samples /data/pt-summary-samples

场景:用已保存采样重出报告

已有 --save-samples 落盘的目录时,直接基于这些文件重新生成报告(不再重新跑探测命令):

bash
pt-summary --read-samples /data/pt-summary-samples

场景:只关注网络段

排查网络问题时,跳过挂载文件系统与进程段,只保留网络控制器、接口统计与连接状态:

bash
pt-summary --no-summarize-mounts --no-summarize-processes

功能说明

pt-summary 不是调优或诊断工具,而是便捷的服务器状态与配置摘要工具: 它运行大量命令检查系统状态和配置,把输出保存到临时目录中的文件, 再用 Unix 命令把这些结果格式化成美观的报告。报告易于 diff、粘贴到邮件不丢格式。 支持多种 Unix 系统;以特权用户运行效果最好(部分输出需要 root)。

下载并运行:

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

模糊取整(fuzzy-rounding)

许多输出刻意做了"模糊取整",只显示数量级而不显示精确细节: 计数器是 918 还是 921 并不重要,这种微小差异只会让跨服务器对比变难。 随着数值增大,取整增量也变大:先取整到最近的 5,然后 10、25, 再按 10 倍递增(50、100、250)……依此类推。

输出

报告主要包括以下部分:

  • 系统概览:日期时间、主机名、运行时长、系统/内核/架构/线程库/编译器/SELinux/虚拟化信息。
  • Processor:CPU 物理核数、频率、型号、缓存(来自 /proc/cpuinfo)。
  • Memory:内存总量/可用/占用、buffers/caches、swappiness(来自 freeps/proc/meminfosysctl),以及来自 dmidecode 的 DIMM 表。
  • Mounted Filesystems:挂载的文件系统与使用率(来自 mountdf)。
  • Disk Schedulers And Queue Size:磁盘调度器与队列大小(来自 /sys)。
  • Disk Partitioning:磁盘分区信息(来自 fdisk -l)。
  • Kernel Inode State/proc/sys/fs 下的 dentry-statefile-nrinode-nr
  • LVM Volumeslvs 输出。
  • RAID Controller:通过 lspcidmesg 探测 RAID 控制器;装了管理软件时可显示其状态摘要。
  • Network Config / Interface Statistics / Network Connections: 网卡控制器(lspci)、TCP/IP 参数(sysctl)、接口收发统计(ip -s link,模糊取整)、 连接状态汇总(netstat)。
  • Top Processes / Notable Processestop 前几行(活跃 CPU 占用进程)、 SSH 守护进程及 OOM 优先级为 17 的进程。
  • vmstat 采样vmstat 1 5 的精简样本(模糊取整,CPU 列除外)。

下面是一段真实报告的开头(节选自官方文档示例,逐字照抄):

text
# 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

# 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

# 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
=======  ====  =====    ===========  ====    ===========

# 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

(以上为节选,完整示例见官方文档)

值得重点看的几处:

  • 系统概览:开头 Date/Hostname/Uptime/Release/Kernel 对应前面说的"系统概览"部分。
  • Processorphysical = 1, cores = 0 等来自 /proc/cpuinfo,对应"Processor"部分。
  • MemoryTotal/Free/Swappiness 及末尾的 DIMM 表,对应"Memory"部分(本例 DIMM 表为空)。
  • Mounted Filesystems:来自 mountdf,对应"Mounted Filesystems"部分。

选项

选项说明
--config类型:string。读取逗号分隔的配置文件列表;如指定必须放在命令行第一个选项的位置
--help显示帮助并退出
--read-samples类型:string。从该目录中的文件生成报告
--save-samples类型:string。把收集的数据保存到该目录
--sleep类型:int;默认:5。收集 vmstat 样本时的睡眠时长
--[no]summarize-mounts默认:yes;可取反。是否报告挂载的文件系统与磁盘使用情况
--[no]summarize-network默认:yes;可取反。是否报告网络控制器与配置
--[no]summarize-processes默认:yes;可取反。是否报告 top 进程与 vmstat 输出
--version显示版本并退出

其他信息

  • 系统要求:需要 Bourne shell(/bin/sh)。

  • 作者:Baron Schwartz, Kevin van Zonneveld, Brian Fraser

  • 环境变量:本工具不使用环境变量(所有 Percona Toolkit 工具均支持 PTDEBUG=1 调试,注意调试输出会暴露命令行中的密码)

  • 通用说明:已知问题的反馈方式、PTDEBUG 调试安全提示、系统要求基线,见 通用说明

更多细节请阅读 官方文档

Percona Toolkit 中文文档 · 社区维护的第三方学习站