0

0

mysql如何监控主从复制的流量消耗_mysql网络带宽监控

P粉602998670

P粉602998670

发布时间:2026-03-05 09:11:03

|

295人浏览过

|

来源于php中文网

原创

最可靠方式是抓取主库到从库的tcp流量,如用tcpdump或iftop;binlog磁盘体积不等于复制带宽,因存在过滤、压缩、重传等差异;带宽异常升高往往反映复制链路问题而非业务增长。

mysql如何监控主从复制的流量消耗_mysql网络带宽监控

怎么看主从复制实际用了多少带宽

MySQL 主从复制本身不直接暴露“每秒传输多少 KB”的指标,SHOW SLAVE STATUS 里只有 Seconds_Behind_Master 和 IO/SQL 线程状态,没法换算成带宽。真实带宽消耗得从网络层反推——不是看 MySQL,是看它用的 TCP 连接。

最可靠的方式是抓取主库上发往从库 IP:port 的流量。比如主库 IP 是 10.0.1.10,从库连的是 3306,那就盯这个连接:

sudo tcpdump -i any -w replication.pcap host 10.0.1.10 and port 3306 and dst 10.0.1.20

注意:dst 10.0.1.20 要换成你从库的真实 IP;如果主从走的是非标端口(比如 3307),记得改端口号。

  • 别在生产高峰长期跑 tcpdump,文件增长快,磁盘和 CPU 都吃紧
  • Linux 上可用 iftop -P 3306 -f "host 10.0.1.20" 快速看实时速率,更轻量
  • 云环境(如阿里云 ECS)可直接看「云监控」里的「外网/内网出方向流量」,筛选源 IP + 目标 IP 即可

binlog 文件大小 ≠ 复制带宽消耗

有人用 du -sh /var/lib/mysql/mysql-bin.* 算日志体积,再除以时间,当成带宽——这会严重高估。因为 binlog 是全量写入磁盘的,但复制只传其中一部分:比如 GTID 过滤、replicate-do-db 设置会让从库跳过某些库;主库上大量 INSERT ... SELECT 或大事务产生的临时日志,在复制时可能被压缩或合并;还有半同步开启时重传、网络丢包重发,这些都让“发送字节数”和“binlog 文件体积”不一致。

  • SHOW BINARY LOGS 显示的是磁盘占用,不是网络发出量
  • 如果开了 binlog_row_image=MINIMAL,UPDATE 只传变化列,比 FULL 模式省一半以上带宽
  • 主库 max_allowed_packet 设太小会导致大事务被拆成多个包,增加 TCP 包头开销,反而推高带宽

从库拉取慢导致带宽“脉冲式”堆积

当从库 SQL 线程卡住(比如遇到锁等待、大 DDL、磁盘 I/O 延迟),IO 线程仍持续从主库读 binlog 并缓存在 relay_log 里。这时主库出口带宽不会降,反而可能升高——因为从库会不断重连、重请求缺失事件,甚至触发 CHANGE MASTER TO ... RELAY_LOG_FILE 手动跳位点,引发重复拉取。

Supercreator
Supercreator

AI视频创作编辑器,几分钟内从构思到创作。

下载

查这个现象的关键指标是:

  • 主库 SHOW PROCESSLIST 里有没有多个 Binlog Dump 线程连同一个从库(说明频繁断连重连)
  • 从库 Seconds_Behind_Master 持续上涨,同时 Relay_Log_Space 不断增大
  • 主库 netstat -an | grep :3306 | grep ESTABLISHED | wc -l 突然变多

这时候带宽峰值未必反映业务压力,而是复制链路健康度告警。

想长期监控,别自己解析 tcpdump

手动抓包只能应急。真要长期看,优先用系统级工具聚合统计,而不是进 MySQL 解析 binlog:

  • ss -i 查单个连接的 rcv_ssthresh/cwnd,能看出 TCP 拥塞情况(间接影响有效带宽)
  • Prometheus + mysqld_exporter 只能报 mysql_slave_status_seconds_behind_master,不提供带宽,得配 node_exporternode_network_transmit_bytes_total{device="eth0", instance="master-ip"},再加 label 过滤目标从库 IP
  • 如果主从走专线或 VPC 内网,交换机镜像端口 + ntopng 是最准的,但运维成本高

真正难的从来不是“怎么拿到数字”,而是区分清楚:这个带宽是业务写入驱动的,还是复制机制缺陷导致的无效重传——后者修好了,带宽自然下来,不用扩容网络。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

1090

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

340

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

380

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

2028

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

379

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

1580

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

585

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

438

2024.04.29

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

4

2026.03.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.4万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 844人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号