通过tcpdump抓取mysql语句分析故障

近期在对mysql例行检查时候,发现有台服务器竟然把千兆内网跑慢了。相当异常,但通过show processlist并为发现异常的进程在运行中。仔细看了后,发现是个sleep,若kill掉后,流量马上就下降了,但它究竟在做什么呢?

为了进一步定位出问题来,想到之前用过的脚本tcpdump分析下是什么内容一直在占用带宽。

#!/bin/bash#this script used montor mysql network traffic.echo sqltcpdump -i eth1 -s 0 -l -w - dst port 3306 | strings | perl -e 'while(<>) { chomp; next if /^[^ ]+[ ]*$/;    if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL)/i)    {        if (defined $q) { print "$q\n"; }        $q=$_;    } else {        $_ =~ s/^[ \t]+//; $q.=" $_";    }}'

运行后,找到了令人振奋的信息

程序一直在跑这个语句,然后通过相应的find命令,定位到相应的语句,发给研发人员,去判断程序逻辑是存在问题。

最终定位出,是程序逻辑问题所致。

通过tcpdump抓取mysql语句分析故障

相关文章:

你感兴趣的文章:

标签云: