台湾服务器需要收集什么样的数据?

作者:港云互联 时间:2019-10-08

        现在已经确定了诊断触发器,可以开始启动一些进程来收集数据了。但需要收集什么样的数据呢?就像前面说的,答案是尽可能收集所有能收集的数据,但只在需要的时间段内收集。包括系统的状态、CPU利用率、磁盘使用率和可用空间、ps的输出采样、内存利用率,以及可以从MySQL获得的信息,如SHOW  STATUS SHOW PROCESSIST 和SHOW  INNODB STATUS。这些在诊断问题时都需要用到(可能还会有更多)。

台湾服务器

        执行时间包括用于工作的时间和等待的时间。当一个未知问题发生时, 一般来说有两种可能:台湾服务器需要做大量的工作,从而导致大量消耗CPU ;或者在等待某些资源破释放。所以需要用不同的方法收集诊断数据,来确认是何种原因:剖析报告用于确认是否有太多工作,而等待分析则用于确认是否存在大量等待。如果是未知的问题,怎么知道将精力集中在哪个方面呢?没有更好的办法,所以只能两种数据都尽量收集。


        在GN/inx平台,可用于台湾服务器内部诊断的个重要工其是 oponie. 后面会展示一些例子也可以使用tri创析台湾服务器的系统调用,但在生产环境中使用它有定的风险。后面还会继续讨论它,如果要别析查询,可以使用npdump.大多数MysSOL版本无法方便地打开和关闭慢查询目志,此时可以通过监听TCP流量来模扣。另外, 网络流量在其他一些分析中也非常有用。


        对于等待分析,常用的方法是GDB的堆栈跟踪。MySQL 内的线程如果卡在一个特定的地方很长时间,往往都有相同的堆栈跟踪信息。跟踪的过程是先启动gdb,然后附加(ttach)到mysqld进程,将所有线程的堆栈都转储出来。然后可以利用些简短的脚本将类似的堆栈跟踪信息做汇总,再利用soriuiqisort的“魔法”排序出总计最多的堆栈信息。稍后将演示如何用pl-pmp工具来完成这个工作。


        也可以使用SHOW PROCESSLIST 和SHOW INODB STATUS 的快照信息观察线程和事务的状态来进行等待分析。这些方法都不完美,但实践证明还是非常有帮助的。


        收集所有的数据听起来工作量很大。或许读者之前已经做过类似的事情,但我们提供的工具可以提供一些帮助。 这个工具名为pt-collect,也是Percona Toolkit中的一员。pt-collect一般通过pt-stalk来调用。因为涉及很多重要数据的收集,所以需要用root权限来运行。默认情况下,启动后会收集30秒的数据,然后退出。对于大多数问题的诊断来说,这已经足够,但如果有误报(false positive)的问题出现,则可能收集的信息就不够。


        这个工具很容易下载到,并且不需要任何配置,配置都是通过pt-stalk进行的。系统中最好安装gdb和oprofile,然后在pt-stalk中配置使用。另外mysqld也需要有调试符号信息。当触发条件满足时,pt-collect 会很好地收集完整的数据。它也会在目录中创建时间戳文件。在本书写作之际,这个工具是基于GNU/Linux的,后续会迁移到其他操作系统,这是一个好的开始。





新人注册,即送价值满880元现金劵

立即注册>>
客服 电话 反馈 活动 回顶部

服务热线

+852-5764-9835

1对1贴心服务,7X24小时热线