• PerconaToolkit 之 ptpmp


    pt-pmp 有两个方便的作用:一是获取进程的堆栈信息,二是对堆栈信息进行汇总。

    进程的堆栈信息是通过gdb获取的,所以在获取过程中,会对mysql服务端的性能有一定的影响

    pt-pmp脚本本身是用shell写的,用法也比较简单,唯一的要求是服务器上已安装gdb包。

    pt-pmp 参数:

    [root@hankyoon ~ ]# pt-pmp --help
    Usage: pt-pmp [OPTIONS] [FILES]
    
    For more information, 'man pt-pmp' or 'perldoc /usr/bin/pt-pmp'.
    
    Command line options:
    
      --binary          Which binary to trace.    指定分析的进程名,如果不指定,默认就是mysqld
      --help            Show help and exit.       帮助
      --interval        Number of seconds to sleep between L<"--iterations">.       迭代时间之间的时间间隔
      --iterations      How many traces to gather and aggregate.                    执行gdb命令的次数
      --lines           Aggregate only first specified number of many functions;    指定打印汇总后每一个分类中的头几个函数
                        0=infinity.
      --pid             Process ID of the process to trace; overrides L<"--binary">.指定进程的pid 
      --save-samples    Keep the raw traces in this file after aggregation.         是否将gdb获取的堆栈信息保存在文件中(注意,没有汇总)
      --version         Show version and exit.
    
    Options and values after processing arguments:
    
      --binary                         mysqld
      --help                           TRUE
      --interval                       0
      --iterations                     1
      --lines                          0
      --pid                            (No value)
      --save-samples                   (No value)
      --version                        FALSE

    用法:

    1. 汇总pstack获取的结果
    
     # ps -ef | grep mysqld
    
     # pstack 7777 > 7777.info
    
     # pt-pmp 7777.info 
    
    2. 直接根据进程名汇总堆栈信息
    
    # pt-pmp --binary mysqld
    
    3. 上述命令只是一次迭代的结果,如果要迭代多次,且每次相隔1s,可指定如下:
    
    # pt-pmp --binary mysqld --iterations 2 --interval 1
    
    4. 如果要同时保留汇总前的堆栈信息,可指定--save-samples参数
    
    # pt-pmp --binary sshd --save-samples sshd.txt
  • 相关阅读:
    git --> 工作使用流程
    json-server-----》基本使用
    laravel DB listen 回调追踪产生 sql 语句的代码
    lumen 使用 laravel-cors 的时候, 使用 dd 函数的解决方法
    js 读写 cookie 简单实现
    API Authentication Error: {"error":"invalid_client","message":"Client authentication failed"}
    lumen passport Call to undefined method LaravelLumenApplication::group()
    laravel 嵌套事务
    mysql 5.7 json 字段类型查找、修改
    dingo 内部调用获取异常信息
  • 原文地址:https://www.cnblogs.com/hankyoon/p/15896998.html
Copyright © 2020-2023  润新知