首先介绍下 pt-stalk,它是 Percona-Toolkit 工具包中的一个工具,说起 PT 工具包大家都不陌生,平时常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自于这个工具包,这里就不多介绍了。
pt-stalk 的主要功能是在出现问题时收集 OS 及 MySQL 的诊断信息,这其中包括:
1. OS 层面的 CPU、IO、内存、磁盘、网络等信息;
2. MySQL 层面的行锁等待、会话连接、主从复制,状态参数等信息。
而且 pt-stalk 是一个 Shell脚本,对于我这种看不懂 perl 的人来说比较友好,脚本里面的监控逻辑与监控命令也可以拿来参考,用于构建自己的监控体系。
三、使用
接着我们来看下如何使用这个工具。
pt-stalk 通常以后台服务形式监控 MySQL 并等待触发条件,当触发条件时收集相关诊断数据。
触发条件相关的参数有以下几个:
function:
∘ 默认为 status,代表监控 SHOW GLOBAL STATUS 的输出;
∘ 也可以设置为 processlist,代表监控 show processlist 的输出;
variable:
∘ 默认为 Threads_running,代表 监控参数,根据上述监控输出指定具体的监控项;
threshold:
∘ 默认为 25,代表 监控阈值,监控参数超过阈值,则满足触发条件;
∘ 监控参数的值非数字时,需要配合 match 参数一起使用,如 processlist 的 state 列;
cycles:
∘ 默认为 5,表示连续观察到五次满足触发条件时,才触发收集;
连接参数:host、password、port、socket。
其他一些重要参数:
iterations:该参数指定 pt-stalk 在触发收集几次后退出,默认会一直运行。
run-time:触发收集后,该参数指定收集多长时间的数据,默认 30 秒。
sleep:该参数指定在触发收集后,sleep 多久后继续监控,默认 300 秒。
interval:指定状态参数的检查频率,判断是否需要触发收集,默认 1 秒。
dest:监控数据存放路径,默认为 /var/lib/pt-stalk。
retention-time :监控数据保留时长,默认 30 天。
daemonize:以后台服务运行,默认不开启。
log:后台运行日志,默认为 /var/log/pt-stalk.log。
collect:触发发生时收集诊断数据,默认开启。
∘ collect-gdb:收集 GDB 堆栈跟踪,需要 gdb 工具。
∘ collect-strace:收集跟踪数据,需要 strace 工具。
∘ collect-tcpdump:收集 tcpdump 数据,需要 tcpdump 工具。
首先录制脚本,设计好场景;然后在设置场景的页面中有RUN面板,面板里有Available Graphs 在里面选择Datebase Server Resource Graphs,再选择 SQL Server(双击),这时候sqlserver的面板就会出现在可是monitors里,然后选中面板右键,选择Add Measurements->进入后点击 Add 输入你数据库服务器的信息,进行连接;
连接成功后,需要选择相应的计数器,关注你们的计数器…
Apache性能监控支持以下指标: Apache吞吐率 Apache并发连接数 Apache并发连接数详细统计,包括读取请求、持久连接、发送响应内容、关闭连接、等待连接Lighttpd性能监控支持以下指标: Lighttpd吞吐率 Lighttpd并发连接数 Lighttpd并发连接数详细统计,包括建立连接、读取请求、读取POST数据、处理请求、发送响应内容、关闭连接Nginx性能监控支持以下指标: Nginx吞吐率 Nginx并发连接数 Nginx并发连接数详细统计,包括读取请求、处理请求和发送响应、持久连接 Nginx持久连接利用率MySQL性能监控支持以下指标: MySQL查询吞吐率,包括Change DB、Select、Insert、Update、Delete MySQL持久连接利用率 MySQL查询缓存空间使用率 MySQL查询缓存命中率 MySQL缓存查询数 MySQL索引缓存命中率 MySQL索引读取统计 MySQL连接吞吐率 MySQL连接缓存命中率 MySQL并发连接数,包括最大允许连接数、实际最大连接数、当前连接数、活跃连接数、缓存连接数 MySQL流量统计 MySQL表统计锁定 MongoDB性能监控支持以下指标:MongoDB全局锁时间比例。此指标反映MongoDB进入锁状态的时间比例。MongoDB当前等待锁总数。是读锁数和写锁数的总和。MongoDB当前等待读锁数。因读请求过高时触发的锁数。MongoDB当前等待写锁数。因写请求过高时触发的锁数。MongoDB查询吞吐率。也就是MongoDB每秒处理的请求数,根据请求类别的不一样细分有query,update,delete,getmore吞吐率。MongoDB使用内存,使用磁盘空间。此指标能反映MongoDB使用内存,磁盘空间的状况。MongoDB分页次数,此指标反映内存分页的次数,有助于对MongoDB的性能分析。MongoDB索引命中率,即单位总命中次数除以总命中次数与未命中次数之和。MongoDB索引访问次数每秒,此指标反映索引的使用频率。MongoDB当前链接数,可用链接数。 Memcache性能监控支持以下指标: Memcache缓存命中率,即单位总命中次数除以总命中次数与未命中次数之和; Memcache当前链接数,即当前已经建立的链接数量; Memcache链接数每秒,即单位时间内新建立的链接数量; Memcache使用内存,即当前存储的items所占用的字节数; Memcache当前条目数量,即当前存储的items数量; Memcache读写每秒,分为读每秒和写每秒,读每秒是指单位时间内新增的读的次数,写每秒是指单位时间内新增的写的次数; Memcache空间使用率,当前存储的items所占用的字节数除以系统分配给Memcache的内存大小 Redis性能监控支持以下指标: Redis链接客户数。 Redis链接从库数。此指标反映Redis的从库链接数。 Redis链接数每分钟。此指标反映Redis的请求频率。 Redis阻塞客户数。当并发请求数过高时触发阻塞。此指标反映Redis的并发请求状况。 Redis Pub/Sub通道数。 Redis Pub/Sub模式数。 Redis命中率。即单位总命中次数除以总命中次数与未命中次数之和。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)