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

问我发现利用有一根拜访数据库的连贯有异样流量,如何判断是利用哪个逻辑导致了异样行为 试验先起锅烧一个数据库实例: 咱们用 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 的技术内容,你们还有什么想晓得的吗?连忙留言通知小编吧!

January 5, 2023 · 1 min · jiezi