zoukankan      html  css  js  c++  java
  • strace追踪mysql执行语句

    一.strace参数

    strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统调用及它所接收的系统信息。追踪程序运行时的整个生命周期,输出每一个系统调用的名字,参数,返回值和执行消耗的时间等。
    strace常用参数:
    -p 跟踪指定的进程
    -f 跟踪由fork子进程系统调用
    -F 尝试跟踪vfork子进程系统调吸入,与-f同时出现时, vfork不被跟踪
    -o filename 默认strace将结果输出到stdout。通过-o可以将输出写入到filename文件中
    -ff 常与-o选项一起使用,不同进程(子进程)产生的系统调用输出到filename.PID文件
    -r 打印每一个系统调用的相对时间
    -t 在输出中的每一行前加上时间信息。 -tt 时间确定到微秒级。还可以使用-ttt打印相对时间
    -v 输出所有系统调用。默认情况下,一些频繁调用的系统调用不会输出
    -s 指定每一行输出字符串的长度,默认是32。文件名一直全部输出
    -c 统计每种系统调用所执行的时间,调用次数,出错次数。
    -e expr 输出过滤器,通过表达式,可以过滤出掉你不想要输出

    二.使用示例

    1.通用示例:

    #strace -o output.txt -T -tt -e trace=all -p 28979

    跟踪28979进程的所有系统调用(-e trace=all),并统计系统调用的花费时间,以及开始时间(并以可视化的时分秒格式显示),最后将记录结果存在output.txt文件里面

    2.统计httpd进程的耗时时间:

    #strace -c -p $(pgrep -n httpd)

    按crtl+c,将显示从开始到结束的时间调用

    3.跟踪最占cpu的httpd的一个进程,并将信息输出到文件

    #strace -t -f  -o httpd-strace  -p $(top -b -n1 | grep "httpd" | head -1 | awk '{print $1}')

    三.查看mysqld进程


    1.使用top查看
    2.ps

    #ps aux | grep mysqld
    

      


    三.追踪mysql执行语句

    # strace -f -F -ff -o mysqld-strace -s 1024 -p mysql_pid
    # find ./ -name "mysqld-strace*" -type f -print | xargs grep -n "SELECT.*FROM"
    

      


    四.查看mysql线程和打开文件
    查看mysql的所有线程

    #ps -mp mysqlpid -o THREAD,tid,time
    

      

    查看mysql打开的所有文件

    #lsof -p mysqlpid
    

      

  • 相关阅读:
    Div+Css布局教程(-)CSS必备知识
    html表格设置
    wxAui Frame Management用法
    aui
    MySQL死锁
    InnoDB索引存储结构
    MySQL事务调优
    MySQL慢SQL语句常见诱因
    InnoDB的LRU淘汰策略
    InnoDB事务之redo log工作原理
  • 原文地址:https://www.cnblogs.com/itfenqing/p/5458504.html
Copyright © 2011-2022 走看看