性能优化

Wireshark数据库协议抓包优化:MySQL/Redis/MongoDB性能瓶颈分析实战

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参数,启用连接验证。

免费下载 Wireshark

让网络分析触手可及

Windows 版

v4.4.0
64位 / 32位
完全免费 · 无广告

macOS 版

v4.4.0
Intel / Apple Silicon
原生支持 M 系列芯片
通过包管理器安装:sudo apt install wireshark (Debian/Ubuntu)