讲师中心 微信公众号
AI工具推荐 视频效率加速

怎样评估MySQL备份占用的I/O与网络带宽以降低业务影响

千磊大大_1709

千磊大大_1709

发布时间:2026-09-08 06:35:26

|

1011人浏览过

|

来源于php中文网

原创

先看硬件:HDD、SATA SSD、NVMe SSD性能差异巨大,顺序写低于100MB/s或iostat中%util常驻>70%需预警;共盘I/O必争抢,NVMe w/s>50k、机械盘>200才逼近极限;备份前用dd测速、df查路径、iotop抓真凶,避免盲目限流。

怎样评估mysql备份占用的i/o与网络带宽以降低业务影响

备份前怎么快速判断磁盘I/O是否扛得住

别等备份跑起来再看 iostat,得提前摸清设备真实吞吐能力。机械盘、SATA SSD、NVMe SSD 的随机读写能力差十倍不止,盲目套用同一套限流参数会失效。

实操建议:

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载
  • 用 dd if=/dev/zero of=/backup/test bs=1M count=1024 oflag=direct 测目标盘顺序写速度,低于 100MB/s 的盘要警惕
  • 查 iostat -x 1 中当前 %util 是否常驻 >70%,若已接近 90%,说明业务本身就在压盘,备份大概率触发毛刺
  • 确认备份目标路径和 MySQL 数据目录不在同一块物理盘(df -P /var/lib/mysql /backup 对比 Filesystem 列),共盘必抢 I/O
  • SSD 上 %util 高不等于过载,得同步看 r/s 和 w/s:NVMe 盘 w/s > 50k 才算逼近极限,机械盘超 200 就该预警

备份中如何实时抓出真正在吃带宽的进程

top 按 CPU 排序是误导——备份卡顿八成不是 CPU 满,而是进程堵在 I/O 等待上。真正拖慢备份的,往往是那些处于 D(uninterruptible sleep)状态的内核线程,或 iotop -o 里排第一的 mysqld、gzip、pv。

实操建议:

  • 运行 iotop -o -b -n 1 抓当前实际 I/O 进程,别信 ps aux | grep mysqldump ——它只是个外壳,真正干活的是 mysqld 主进程
  • 若看到 ksmd 或 kswapd0 占高 I/O,说明内存不足触发了交换,得调低 mysqldump --quick 或关掉 --compress
  • 备份写 NAS 或 NFS 时,await 高但 svctm 低,基本可断定是网络延迟,此时加 ionice 无效,得换本地盘或优化挂载参数(如 noatime,nodiratime,hard,intr)
  • 脚本里嵌入轻量监控:timeout 3 iostat -x 1 2 | tail -1 | awk '{print $14}' 提取 %util,超阈值自动退出备份

mysqldump 和 XtraBackup 的带宽行为差异在哪

mysqldump 是“读一行、转 SQL、写一行”,本质是大量小块随机读 + 文本写;XtraBackup 是“按页直接拷 ibdata1 和 .ibd”,属于大块顺序读 + 二进制写。两者对 I/O 子系统压力模式完全不同,不能混用同一套限流逻辑。

实操建议:

  • mysqldump 加 --quick --skip-extended-insert 减少内存缓存,避免临时表撑爆 buffer,降低 %wa
  • XtraBackup 必须配 --throttle=100(单位是 IOPS),而不是 cpulimit——它不怎么耗 CPU,但会持续发 4K/64K 读请求,--throttle 才能压住队列深度
  • 用 --stream=xbstream | ssh backup@host "xbstream -x" 做远程备份时,网络带宽会成为新瓶颈,pv -L 20m 比限 I/O 更有效
  • 二者都禁用 gzip 内置压缩(--compress 或 --compress-threads),改用外部 pigz -p4 并绑定到空闲 CPU 核,避免和 mysqld 抢资源

为什么监控到的带宽和实际业务感知不一致

常见现象:iostat 显示 sdb %util=95%,但业务查询 P99 延迟只涨了 2ms;另一台机器 %util=60%,P99 却翻了 5 倍。根本原因在于,%util 是设备驱动层统计,而业务延迟取决于 I/O 请求在队列里的排队时间,即 await —— 它受队列调度策略、IO depth、存储固件影响极大,无法被简单百分比反映。

实操建议:

  • 机械盘上 await > 30ms 就危险,SSD 上超过 10ms 就该查,别死盯 %util
  • 用 cat /sys/block/sdb/device/queue_depth 看队列深度,若为 1(常见于某些 USB 或虚拟盘),哪怕 %util=20% 也会导致严重排队
  • Percona Toolkit 的 pt-ioprofile 能定位到具体文件(如 /var/lib/mysql/ibdata1)的读写热点,比泛泛看设备名更准
  • 最易被忽略的一点:备份进程的 open() 系统调用频率。频繁打开关闭临时文件(如 mysqldump --tab)会引发大量 metadata I/O,在 ext4 上尤其伤,应改用单文件输出

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

2013

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

1239

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

735

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2652

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

4388

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

1039

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

4651

2023.08.11

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

4182

2023.08.14

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

0

2026.09.29

热门下载

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

精品课程

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

共1课时 | 176人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 282人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn