DBA痛点:数据库性能问题往往涉及网络层,Wireshark能揭示应用层看不到的通信细节 [^16^]。
一、MySQL协议分析
Wireshark配置优化
编辑 → 首选项 → Protocols → MySQL → 勾选"跟踪TCP流时重组MySQL流"
关键过滤:
mysql # 所有MySQL流量
mysql.command == 3 # COM_QUERY (SQL查询)
mysql.command == 22 # COM_STMT_PREPARE (预处理)
mysql.error_code != 0 # 错误响应
慢查询定位:
1. 启用时间列:视图 → 时间显示格式 → 自捕获开始以来的秒数
2. 找到Query包 → 查看与Response包的时间差
3. 超过1秒的查询:frame.time_delta > 1 and mysql.command == 3
二、Redis协议分析
Redis基于RESP协议,Wireshark可解析:
redis- 显示所有Redis命令redis.command == "GET" or redis.command == "SET"- 特定操作redis.response.status == "OK"- 成功响应tcp.port == 6379- 默认端口捕获
三、连接池问题诊断
现象:应用报"Too many connections"。
抓包分析:发现大量TCP SYN包无响应,或MySQL连接建立后长时间空闲(mysql.command == 1 Sleep状态)。
优化:调整连接池maxIdle和maxActive参数,启用连接验证。

