跳到内容

pt-stalk

的名字

pt-stalk——收集法医MySQL数据当问题发生。

剧情简介

使用

pt- - - - - -(选项]

pt-stalk等待一个触发条件发生,然后收集数据来帮助诊断问题。工具的目的是作为一个守护进程使用root特权运行,这样你就可以诊断间歇性问题,不能直接观察到。您还可以使用它来执行一个自定义命令,或收集的数据需求,而等待触发发生。

风险

雷竞技下载官网Percona工具包已经成熟,证明在现实世界中,和很好的测试,但所有数据库工具可以对系统和数据库服务器构成风险。在使用这个工具之前,请:

  • 阅读工具的文档

  • 检查工具的“错误”

  • 非生产服务器上测试工具

  • 备份您的生产服务器和验证备份

描述

有时一个问题很少发生在很短的时间内,给你没有机会看到它发生时系统。你如何解决间歇性MySQL的问题当你不能看到他们吗?这就是为什么pt-stalk的存在。除了使用的时候有一个已知的问题在你的服务器,它是一个好主意pt-stalk所有的时间,即使你认为没有什么是错的。你会欣赏它收集的数据出现问题时,因为MySQL锁仓或高峰活动等问题通常没有留下任何证据用于根本原因分析。

pt-stalk做两件事:这手表一个MySQL服务器并等待一个触发条件发生时,触发发生时收集诊断数据。为了避免假阳性引起的短暂的问题,触发条件至少必须是真实的——周期次一个——收集触发。

使用pt-stalk实际上,您需要定义一个好触发。良好的触发足够敏感的可靠当问题发生时,你不要错过机会解决问题。另一方面,一个好的触发不容易出现假阳性,所以你不收集信息时,服务器正常运行。

最可靠的触发MySQL往往是连接到服务器的数量,和并发运行的查询数量。这些可用Threads_connected和Threads_running显示全球状态命令。有时Threads_connected不是一个可靠指标的麻烦,但是Threads_running通常是。你的工作,作为工具的用户,是定义一个适当的触发条件的工具。仔细选择,因为你的质量结果将取决于您选择的触发。

你定义的触发器——函数,——变量,——阈值,——周期选项。这些选项的默认值定义一个合理的触发,但你应该调整或改变他们套件特定系统和需求。

默认情况下,pt-stalk工具手表MySQL永远直到触发发生时,然后它收集诊断数据,来避免重复收集数据,然后睡觉,如果触发仍然是正确的。一般的操作顺序是:

真正的;如果——变量——函数>——阈值;然后cycles_true + +如果cycles_true>=——周期;然后——notify-by-email如果——收集;然后如果——disk-bytes-free——disk-pct-free好吧;然后(——收集——运行时)&firm文件——桌子——保留时间fiiter + +cycles_true=0fi如果iter<——迭代;然后睡眠——睡眠其他的打破fi其他的如果iter<——迭代;然后睡眠——时间间隔其他的打破fifi完成rm——桌子文件——保留时间如果——收集过程仍然运行;然后等待向上——运行时*3杀了任何剩下的——收集流程fi

诊断数据写入文件的名字从一个时间戳开始,这样你就可以区分彼此的工具收集样本数据多次。pt-sift工具旨在帮助您浏览和分析结果数据样本。

尽管这听起来很简单,在实践中有许多微妙之处,如检测磁盘时开始填满,这样工具不会引起服务器耗尽磁盘空间。这个工具处理这些类型的潜在问题,这是一个好主意使用这个工具,而不是从头开始写东西,可能经历的一些旨在避免危害这个工具。

配置

您可以使用标准Percona工具包配置文件雷竞技下载官网设置命令行选项。

你可能会想要运行该工具至少作为一个守护进程和定制的——阈值。下面是一个示例配置文件有超过20岁时触发查询运行:

daemonize阈值=20.

如果你不作为根用户运行该工具,那么您将需要指定几个选项,如——pid,——日志,——桌子,否则该工具可能无法启动。

选项

——ask-pass

连接到MySQL时提示输入密码。

——收集

默认值:是的,negatable:是的

收集诊断数据触发发生时。指定——no-collect使工具看系统但不收集数据。

另请参阅——茎

——collect-gdb

收集GDB异常堆栈。这是通过连接到MySQL和印刷所有线程的堆栈跟踪。这将冻结服务器一段时间,从一秒左右到更长时间很忙系统大量的内存和许多线程服务器。因此,默认情况下是禁用的。然而,如果你试图诊断服务器失速或锁定,冻结服务器没有造成额外的伤害,和堆栈跟踪可以为诊断是至关重要的。

除了冻结服务器之外,也有一些风险的服务器崩溃或GDB后执行严重分离。

——收集oprofile

收集oprofile数据。这是通过一个oprofile会话开始,让它运行,收集一次,然后停止并保存在系统中生成的配置文件数据的默认位置。请阅读系统的oprofile文档以了解更多关于这个。

——collect-strace

收集strace数据。这是通过将strace附加到服务器,这将使它运行非常缓慢,直到strace分离。应用相同的警告那些在-collect-gdb上市。你不应该启用该选项-collect-gdb一起,因为GDB和strace不能同时连接到服务器进程。

——collect-tcpdump

收集tcpdump数据。这个选项让tcpdump捕获所有流量对所有接口的端口MySQL是倾听。你可以以后使用pt-query-digest解码MySQL协议和提取日志查询交通。

——配置

类型:字符串

读取这个配置文件的逗号分隔列表。如果指定的,这必须在命令行中第一个选项。

——周期

类型:int;默认值:5

多少次——变量必须大于——阈值在触发——收集。这有助于防止假阳性,使触发条件不太可能火灾时迅速恢复的问题。

——daemonize

Daemonize工具。这导致工具叉到背景和其输出指定登录日志。

——defaults-file

简式:- f;类型:字符串

从给定的文件只读mysql选项。你必须给一个绝对路径名。

——桌子

类型:字符串;默认值:/var/lib/pt-stalk

为了节省诊断数据从哪来——收集。每一次收集数据的工具,它写入新的文件,命名与当前系统时间戳。

——disk-bytes-free

类型:大小;默认值:100

——收集如果磁盘不到这么多的自由空间。这可以防止工具和诊断数据填满磁盘。

如果——桌子目录包含先前捕获的样本数据,该工具将测量它的大小和使用它作为估计多少数据可能聚集这一次。它将更为悲观,会拒绝收集数据,除非磁盘有足够的空闲空间来保存样本,还有所需的大量的自由空间。举个例子,如果你想100 mb的自由空间和之前的诊断示例使用100 mb,工具不会收集任何数据,除非磁盘有200 mb免费。

有效的后缀是k值大小,M, G, T。

——disk-pct-free

类型:int;默认值:5

——收集如果磁盘已小于这个百分比自由空间。这可以防止工具和诊断数据填满磁盘。

这个选项类似于工作——disk-bytes-free但指定百分比安全边际,而不是字节安全边际。荣誉的工具选项,和不会收集任何数据,除非利润率都满意。

——函数

类型:字符串;默认值:状态

看点扳机。默认值表显示全球状态,但你也可以观看显示PROCESSLIST并指定一个文件,您自己的自定义代码。这个函数提供的价值——变量,然后比较反对——阈值触发条件是否满足。可能需要额外的选项;见下文。可能的值是:

  • 状态

显示全球状态触发。的价值——变量然后定义状态计数器的触发。

  • processlist

显示完整的PROCESSLIST触发。触发值计数的过程——变量列匹配——比赛选择。例如,触发——收集当超过10过程在“统计”状态,指定:

——函数processlist\——变量状态\——比赛统计数据\——阈值10

此外,您可以指定一个文件,其中包含您的自定义触发功能,用Unix shell脚本。这可能是一个包装器执行任何你的愿望。如果参数——函数是一个文件,那么它优先于内置函数,如果有工作目录中的一个文件名为“状态”或“processlist”然后这个工具将使用该文件,即使是有效的内置值。

文件是通过提供一个函数调用trg_plugin,工具简单的源文件和执行功能。例如,文件可能包含:

trg_plugin(){mysqlEXT_ARGV美元- e“显示引擎INNODB状态”\|grep- c“等待”}

这段代码将计算互斥锁等待在InnoDB的数量。它说明了一般原则:函数必须输出一个数字,然后相比——阈值像往常一样。的EXT_ARGV美元变量包含MySQL选择上面的“简介”中提到的。

文件不应改变现有的全局变量的工具。前缀任何file-specific全局变量PLUGIN_或者让他们当地。

——帮助

打印帮助并退出。

——主机

简式:- h;类型:字符串

主机连接。

——时间间隔

类型:int;默认值:1

多长时间检查如果触发是真的,在几秒钟内。

——迭代

类型:int

多少次,——收集诊断数据。默认情况下,该工具运行永远和每一次收集数据触发发生。指定——迭代收集数据的次数有限。这个选项也很有用——no-stalk例如,一旦收集数据并退出。

——日志

类型:字符串;默认值:/var/log/pt-stalk.log

当监控打印所有输出文件。

——比赛

类型:字符串

看显示PROCESSLIST时使用的模式。看到——函数获取详细信息。

——notify-by-email

类型:字符串

为每个这些地址发送电子邮件——收集

——密码

简式:- p;类型:字符串

连接时使用的密码。如果密码包含逗号他们必须用反斜杠转义:“考试,请耐心”

——pid

类型:字符串;默认值:/var/run/pt-stalk.pid

创建给定的PID文件。这个工具不会开始如果PID文件已经存在,它所包含的PID不同于当前的PID。然而,如果PID文件存在,它所包含的PID不再运行,这个工具将覆盖PID文件与当前PID。PID文件删除工具时自动退出。

——插件

类型:字符串

加载插件钩到工具和扩展功能。指定的文件不需要可执行文件,它的第一行也不需要工作。它只需要定义一个或多个Bash函数:

before_stalk

在跟踪。

before_collect

在运行之前触发发生时调用——收集子流程的背景。

after_collect

之后调用运行一个收藏家的过程。收集器过程的PID作为第一个参数传递。这个钩子叫做之前after_collect_sleep

after_collect_sleep

称为后睡觉——睡眠秒收集器过程完成。这个钩子叫做后after_collect

after_interval_sleep

称为后睡觉——时间间隔秒后每个触发器。

after_stalk

称为后跟踪。自pt-stalk茎永远在默认情况下,这个钩子只是如果——迭代都是确定的。

例如,一个非常简单的插件时,触动一个文件——收集触发:

before_collect(){触摸/ tmp / foo}

因为插件完全采购(进口)工具的名称空间,小心不要定义其他函数或全局变量已经存在的工具。你应该前缀所有plugin-specific函数和全局变量plugin_PLUGIN_

插件可以访问所有命令行选项,但是他们不应该修改它们。每个选项是一个全局变量OPT_DEST美元这对应于——桌子。因此,每个命令行选项的全局变量OPT_加上选项名称全部大写为连字符替换为下划线。

插件可以停止该工具通过设置全局变量OKTORUN1。在这种情况下,全局变量EXIT_REASON还应该设置为显示工具是停止的原因。

插件作者应该记住,当前使用的文件的目的地前缀应该通过访问美元的前缀变量,而不是OPT_PREFIX美元

——mysql-only

触发只有MySQL相关捕获,忽视其他。唯一没有MySQL值收集相关的磁盘空间,因为它是需要计算可用的空闲磁盘空间写结果文件。这个选项是有用的RDS实例。

——港口

简式:- p;类型:int

端口号用于连接。

——前缀

类型:字符串

文件名前缀为诊断样本。默认情况下,创建的所有文件相同——收集实例有一个时间戳前缀根据当前当地时间2011年_12_06_14_02_022011年12月6日,14:02:02。

——retention-count

类型:int;默认值:0

使数据在过去的N。如果N > 0,该计划将使数据在过去N运行并将删除旧数据。

——retention-size

类型:int;默认值:0

保持-retention-size MB的数据。它将保持至少1运行即使大小大于该参数中指定

——保留时间

类型:int;默认值:30

保留天数收集样本。老的任何样品将被净化。

——运行时

类型:int;默认值:30

多久——收集诊断数据触发发生时。值是在几秒钟内,不应超过——睡眠。它通常是没有必要改变;如果默认30秒没有收集足够的数据,运行时间是不可能帮助因为系统或MySQL服务器反应可能是太忙了。事实上,在许多情况下,较短的集合时间是适当的。

这个值是使用另外两次。在收集,收集子流程将等待另一个——运行时秒的命令来完成。一些命令可能需要一段时间,如果系统运行非常缓慢(可能的情况下,一组触发)。因为空文件删除,额外的等待时间完成给命令,写他们的数据。值可能是再次使用该工具之前退出再次等待任何收集子流程完成。在大多数情况下这不会发生,因为前面提到的额外的等待。如果它发生,这个工具将日志”到N秒等待子流程完成…”其中N是三次——运行时。在这两种情况下,等待后,杀死了所有的子流程的工具。

——睡眠

类型:int;默认值:300

后睡多长时间——收集。这可以防止工具不断引发,这可能是一个问题如果收集过程。它还可以防止填满磁盘或收集太多数据分析合理。

——sleep-collect

类型:int;默认值:1

睡多久集合之间的循环周期。这是有用的——no-stalk长集合。例如,收集数据为一个小时,每一分钟指定:——no-stalk——运行时3600年——sleep-collect60

——套接字

简式:s;类型:字符串

套接字文件用于连接。

——茎

默认值:是的,negatable:是的

看服务器并等待触发发生。指定——no-stalk立即收集诊断数据,而不必等待触发器。你也可能希望指定值——时间间隔,——迭代,——睡眠。例如,立即收集数据1分钟然后退出,指定:

——no-stalk——运行时60——迭代1

——周期,——daemonize,——日志——pid没有影响,——no-stalk。维护选项,如——disk-bytes-free——disk-pct-free,仍然是受人尊敬的。

另请参阅——收集

——系统只

触发只有操作系统相关的截图,忽视其他。

——阈值

类型:int;默认值:25

最大可接受的值——变量——收集触发时的价值——变量大于——阈值——周期很多次了。目前,没有办法检查定义一个较低的阈值——变量值太低了。

另请参阅——函数

——用户

简式:- u;类型:字符串

用户登录如果不是当前用户。

——变量

类型:字符串;默认值:Threads_running

要比较的变量——阈值。另请参阅——函数

——详细

类型:int;默认值:2

打印或多或少的在运行的信息。自工具被设计成一个长时间运行的守护进程,默认的冗长级别只打印最重要的信息。如果你运行这个工具交互,您可能想使用冗长的水平更高。

水平打印= = = = == = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =0错误1警告2匹配触发器集合信息3不匹配的触发器
——版本

打印工具的版本并退出。

环境

这个工具不需要任何配置环境变量,尽管它可以影响不同的工作通过一些变量。记住,这些都是专家的设置,在大多数情况下,不应使用。

具体来说,可以设置的变量有:

CMD_GDB

CMD_IOSTAT

CMD_MPSTAT

CMD_MYSQL

CMD_MYSQLADMIN

CMD_OPCONTROL

CMD_OPREPORT

CMD_PMAP

CMD_STRACE

CMD_SYSCTL

CMD_TCPDUMP

CMD_VMSTAT

例如,在收集iostat叫做dx的论点,而是因为你有一个NFS分区,您还需要n标志。而不是编辑源代码,您可以调用pt-stalk作为

CMD_IOSTAT=“iostat - n”pt-stalk

将你需要做什么。结合插件钩子,这给了你一个什么工具的细粒度控制。

它可以使调试mysqladmin指定模式:

CMD_MYSQLADMIN = ' mysqladmin调试的:计划:“pt-stalk”参数个数

系统需求

这个工具需要Bash v3或更新。某些选项需要其他程序:

——collect-gdb需要广东发展银行

——收集oprofile需要opcontrolopreport

——collect-strace需要strace

——collect-tcpdump需要tcpdump

错误

一个已知的错误列表,看到https://jira.雷竞技下载官网percona.com/projects/PT/issues

请报告错误https://jira.雷竞技下载官网percona.com/projects/PT。在错误报告中包含以下信息:

  • 完整的命令行运行该工具使用

  • 工具——版本

  • MySQL版本所涉及的所有服务器

  • 工具的输出包括STDERR

  • 输入文件(日志/转储/配置文件,等等)。

如果可能的话,通过运行该工具包括调试输出PTDEBUG;看到“环境”。

注意

使用< PTDEBUG >可能暴露密码。启用调试时,所有的命令行参数输出所示。

下载

访问http://www.雷竞技下载官网percona.com/software/percona-toolkit/下载最新版本的Percona工具包。雷竞技下载官网或者,从命令行得到最新版本:

wget雷竞技下载官网percona.com/get/percona-toolkit.tar.gz wget雷竞技下载官网percona.com/get/percona-toolkit.rpm wget雷竞技下载官网percona.com/get/percona-toolkit.deb

你也可以个人工具的最新版本:

wget雷竞技下载官网percona.com/get/TOOL

取代工具与任何工具的名称。

作者

男爵Schwartz,贾斯汀Swanhart费尔南多Ipar,丹尼尔走错,和布莱恩·弗雷泽

关于PERC雷竞技下载官网ONA工具包

这个工具是Percona工具包的一部分,一雷竞技下载官网批先进的MySQL Percona开发的命令行工具。雷竞技下载官网Percona工具包是分叉的从6月份的两个项目,2011:Maatkit Aspersa。这些项目是由男爵施瓦茨和主要由他和丹尼尔走错。访问http://www.雷竞技下载官网percona.com/software/了解其他免费的,从Percona开源软件。雷竞技下载官网

版本

pt-stalk3.5.2

Baidu
map