linux中如何使用strace追踪mysql执行语句

技术linux中如何使用strace追踪mysql执行语句这篇文章将为大家详细讲解有关linux中如何使用strace追踪mysql执行语句,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获

本文将详细解释如何在linux中使用strace跟踪mysql执行语句。边肖觉得挺实用的,就分享给大家参考。希望你看完这篇文章能有所收获。

Strace是Linux环境下的程序调试工具,用于监控应用程序使用的系统调用及其接收到的系统信息。运行时跟踪程序的整个生命周期,输出每个系统调用的名称、参数、返回值和执行时间。

strace常用参数:

-p跟踪指定的过程。

fork子进程系统调用-f跟踪。

-f试图跟踪vfork子流程的系统调优入口,当vfork以-F出现时不会被跟踪。

-o filename默认strace将结果输出到stdout。使用-o,您可以将输出写入文件名文件。

-ff通常与-o选项一起使用,不同进程(子进程)生成的系统调用输出到filename。PID文件。

-r打印每个系统调用的相对时间。

-t在输出中的每一行之前添加时间信息。-tt时间被确定为微秒级。您也可以使用-ttt打印相对时间。

-v输出所有系统调用。默认情况下,一些频繁调用的系统调用不会被输出。

-s指定每个输出字符串的长度,默认情况下为32。所有文件名总是输出。

-c统计每次系统调用的执行时间、调用次数和错误次数。

-e expr输出过滤器,通过表达式,可以过滤掉不需要的输出。

1.跟踪多个流程的策略:

当有多个子流程时,比如php-fpm、nginx等。用strace追踪非常不方便。您可以使用以下方法跟踪所有子流程。

#vim/root/。bashrc//添加以下内容。

functionstraceall{

strace$(pidof'${1}'|sed的/\([0-9]*\)/-p\1/g ')

}

#source/root/。bashrc

执行:

#traceallphp-fpm

2.跟踪网络服务器系统调用。

# strace-F-F-s 1024-onginx-strace/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx . conf

# strace-F-F-ophp-fpm-strace/usr/local/PHP/sbin/PHP-fpm-y/usr/local/PHP/etc/PHP-fpm . conf

3.跟踪mysql执行语句。

# strace-F-F-ff-omisqld-strace-s 1024-pmysql _ PID

#找到。/-name ' mysqld-strace * '-typef-print | xargsgrep-n ' select。*FROM '

4.董是什么——收视节目在做什么?

#!/bin/bash

# thiscriptisfrom http://poormnsprofiler . org/

nsamples=1

睡眠时间=0

pid=$(pidof$1)

forxin$(seq1$nsamples)

gdb-ex ' setpediation0 '-ex ' threadapplyalbt '-batch-p $ PID

睡眠$睡眠时间

完成|\

BEGIN { s=}

/^thread/{prints;s=}

/^\#/{if(s!=''){s=s ',' $4}否则{s=$4}}

END{prints}'|\

sort|uniq-c|sort-r-n-k1,1

输出:

#profiler.shmysqld

727 pthread _ cond _ wait @ @ GLIBC _ 2 . 3 . 2,cache_thread,put_in_cache=true),handle_one_connection,start_thread,

4 thread _ cond _ wait @ @ GLIBC _ 2 . 3 . 2,os_event_wait_low,os_aio_simulated_handle,fil_aio_wait,io_handler_thread,start_thread,

4?

2read,my_real_read,my_net_read,do_command,handle_one_connection,start_thread,

1 thread _ cond _ wait @ @ GLIBC _ 2 . 3 . 2,os_event_wait_low,srv_master_thread,start_thread,

1 thread _ cond _ wait @ @ GLIBC _ 2 . 3 . 2,MYSQL _ BIN _ LOg : Wait _ for _ update,mysql_binlog_send,dispatch_command,do_command,handle_one_connection,start_thread,

1do_sigwait,sigwait,signal _ hand,start_thread,

1这篇关于“如何在linux中使用strace跟踪mysql执行语句”的文章已经分享到这里了,希望。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/58419.html

(0)

相关推荐

  • debug P命令跟踪程序时遇到Int 21使用P命令的分析

    技术debug P命令跟踪程序时遇到Int 21使用P命令的分析debug P命令跟踪程序时遇到Int 21使用P命令的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能

    攻略 2021年11月11日
  • 有哪些Go加密解密算法

    技术有哪些Go加密解密算法这篇文章主要讲解了“有哪些Go加密解密算法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些Go加密解密算法”吧!md5MD5信息摘要算法是一

    攻略 2021年10月27日
  • 【转载】EXCEL VBA 自定义排序的三种方法

    技术【转载】EXCEL VBA 自定义排序的三种方法 【转载】EXCEL VBA 自定义排序的三种方法何谓自定义排序,就是按指定的顺序对数据源进行排序呗。共分享了三种方法:
    第1种方法是系统自带的Ord

    礼包 2021年11月13日
  • 含卧字的成语典故,卧字的成语典故是什么主人公是

    技术含卧字的成语典故,卧字的成语典故是什么主人公是典故含卧字的成语典故:春秋时期,吴越两邻国,经常打仗,有次吴王领兵攻打越国,被越王勾践的大将砍中了右脚,最后伤重而亡。吴王死后,他的儿子夫差继位。三年以后,夫差带兵前去攻

    生活 2021年10月29日
  • C++怎么将帮助函数和它们支持的类放在同一命名空间

    技术C++怎么将帮助函数和它们支持的类放在同一命名空间这篇文章主要讲解了“C++怎么将帮助函数和它们支持的类放在同一命名空间”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“

    攻略 2021年11月25日
  • 如何用html5绘制表格

    技术如何用html5绘制表格如何用html5绘制表格,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。表格一般通过3个标签来构建,分别为表格标签,行标签和单

    攻略 2021年11月25日