前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第50问:从连接判断应用访问数据库的异常行为

第50问:从连接判断应用访问数据库的异常行为

原创
作者头像
爱可生开源社区
发布2023-01-05 13:51:19
5650
发布2023-01-05 13:51:19
举报
文章被收录于专栏:爱可生开源社区

我发现应用有一根访问数据库的连接有异常流量,如何判断是应用哪个逻辑导致了异常行为

实验

先起锅烧一个数据库实例:

我们用 mysqlslap 作为应用:

假设在 MySQL 中,我们认为这根连接有异常流量:

通过 ss 找到这根连接在 mysqlslap 中的句柄号: 

我们通过 strace ,输出 mysqlslap 使用这根连接的堆栈:

其中 "-e desc" 表示追踪所有跟文件句柄有关的系统调用,"-k" 表示打印堆栈

可以看到图上打印出了句柄3的一次调用,是 mysqlslap 在做 drop database 的动作

再挑一个句柄3的堆栈,是 mysqlslap 在做 create database 的动作:

找到句柄4的对应操作:

可以看到: 

  • 句柄3对应的连接的作用是 create/drop database ,进行测试前后的构建和清理工作。 
  • 句柄4对应的连接的作用是 run task ,对数据库施加任务压力,我们从数据库上看到的异常流量,就是来自于这个逻辑。

本次实验,我们通过连接端口号找到连接句柄,通过连接句柄,定位到连接异常流量的堆栈,能帮助大家定位到业务应用的异常逻辑。 

这种方法只适用于 c/c++ 的应用,对于其他语言编写的应用,我们之后会介绍其他方法来诊断。


关于 MySQL 的技术内容,你们还有什么想知道的吗?赶紧留言告诉小编吧!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档