pt-summary
友好地汇总服务器系统信息(操作系统、内存、磁盘、网络等),输出便于 diff 和邮件粘贴的报告。
语法
pt-summary用法示例
pt-summary 是纯本机系统巡检工具,不连接数据库,命令可直接复制运行。
场景:出一份系统基线报告
变更前或故障排查时,快速汇总 CPU、内存、磁盘、网络等全貌,作为比对基线或贴进工单:
pt-summary场景:落盘采样数据留档
把各命令的原始采样保存到目录,便于事后在别的机器上重出报告,无需再次探测本机:
pt-summary --save-samples /data/pt-summary-samples场景:用已保存采样重出报告
已有 --save-samples 落盘的目录时,直接基于这些文件重新生成报告(不再重新跑探测命令):
pt-summary --read-samples /data/pt-summary-samples场景:只关注网络段
排查网络问题时,跳过挂载文件系统与进程段,只保留网络控制器、接口统计与连接状态:
pt-summary --no-summarize-mounts --no-summarize-processes功能说明
pt-summary 不是调优或诊断工具,而是便捷的服务器状态与配置摘要工具: 它运行大量命令检查系统状态和配置,把输出保存到临时目录中的文件, 再用 Unix 命令把这些结果格式化成美观的报告。报告易于 diff、粘贴到邮件不丢格式。 支持多种 Unix 系统;以特权用户运行效果最好(部分输出需要 root)。
下载并运行:
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(来自
free、ps、/proc/meminfo、sysctl),以及来自dmidecode的 DIMM 表。 - Mounted Filesystems:挂载的文件系统与使用率(来自
mount和df)。 - Disk Schedulers And Queue Size:磁盘调度器与队列大小(来自
/sys)。 - Disk Partitioning:磁盘分区信息(来自
fdisk -l)。 - Kernel Inode State:
/proc/sys/fs下的dentry-state、file-nr、inode-nr。 - LVM Volumes:
lvs输出。 - RAID Controller:通过
lspci和dmesg探测 RAID 控制器;装了管理软件时可显示其状态摘要。 - Network Config / Interface Statistics / Network Connections: 网卡控制器(
lspci)、TCP/IP 参数(sysctl)、接口收发统计(ip -s link,模糊取整)、 连接状态汇总(netstat)。 - Top Processes / Notable Processes:
top前几行(活跃 CPU 占用进程)、 SSH 守护进程及 OOM 优先级为 17 的进程。 - vmstat 采样:
vmstat 1 5的精简样本(模糊取整,CPU 列除外)。
下面是一段真实报告的开头(节选自官方文档示例,逐字照抄):
# 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对应前面说的"系统概览"部分。 - Processor:
physical = 1, cores = 0等来自/proc/cpuinfo,对应"Processor"部分。 - Memory:
Total/Free/Swappiness及末尾的 DIMM 表,对应"Memory"部分(本例 DIMM 表为空)。 - Mounted Filesystems:来自
mount与df,对应"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 调试安全提示、系统要求基线,见 通用说明。
更多细节请阅读 官方文档。