› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
JiangZeYi
V2EX  ›  MySQL

MySQL 磁盘读取飙升,导致阿里云服务器卡死

  •  
  •   JiangZeYi · Aug 26, 2025 · 7456 views
    This topic created in 443 days ago, the information mentioned may be changed or developed.

    问题

    MySQL 是跑在 Docker 上,在某段时间内 MySQL 磁盘读取飙升,导致服务器卡死。

    这是因为查询扫描行数过多导致的磁盘读取飙升吗?还是有其他原因。

    磁盘读取飙升的问题该如何得到解决?优化查询 SQL ?换阿里云的 RDS ?

    有大佬能解答下吗?

    服务器配置

    实例规格:ecs.c8i.xlarge

    CPU:4 核 vCPU

    内存:8G

    磁盘:ESSD P1 40G

    MySQL 配置

    [mysqld]
    slow_query_log=ON
    long_query_time=3
    innodb_buffer_pool_size = 1536M
    innodb_log_file_size=256M
    innodb_log_buffer_size=32M
    

    相关截图

    阿里监控:

    Po7PFJD

    ATOP ( 10 分钟):

    NqFgFWr

    QLD3fDs

    慢 SQL 日志:

    yHquwHg

    Supplement 1  ·  Aug 27, 2025
    感谢各位的建议,这边已经换成高性能云盘的 RDS 了。
    34 replies  •  2025-08-30 10:00:09 +08:00
    bronyakaka
    bronyakaka
    Aug 26, 2025
    1
    应该给阿里云提工单
    JiangZeYi
    JiangZeYi
    OP
    Aug 26, 2025
    2
    @bronyakaka 已经找过售后了,售后让我们从业务侧优化 MySQL 内存使用和调用逻辑
    cryptovae
    cryptovae
    Aug 26, 2025❤️2
    3
    楼上两个也是神人

    `6G 显存跑 32B 大模型,跑不了,然后跑去问显卡厂商要解决方案`
    JiangZeYi
    JiangZeYi
    OP
    Aug 26, 2025
    4
    @cryptovae 我也没要解决方案呀🤣
    6JSh5b6Q5Z2k
    6JSh5b6Q5Z2k
    Aug 26, 2025
    5
    歪个楼 为什么在 docker 中跑?生产环境吗
    msg7086
    msg7086
    Aug 26, 2025❤️1
    6
    特定查询有问题?扫 3.6M 行返回 438 行,可以 explain 一下看看。
    spritecn
    spritecn
    Aug 26, 2025
    7
    被某个 job 拉爆了吧
    JiangZeYi
    JiangZeYi
    OP
    Aug 26, 2025
    8
    @6JSh5b6Q5Z2k 生产环境,图方便吧,数据文件还是挂载在宿主机上
    yh7gdiaYW
    yh7gdiaYW
    Aug 26, 2025
    9
    加内存、调升 ESSD 等级,阿里云服务器这个问题挺蛋疼,不知道别的云服务商怎么管控的
    yh7gdiaYW
    yh7gdiaYW
    Aug 26, 2025
    10
    然后盘 40G 太小了,直接用默认的系统盘跑的?换个容量更大的数据盘,PL0 就行但空间要大,不然 IOPS 就那一点
    JiangZeYi
    JiangZeYi
    OP
    Aug 26, 2025
    11
    @spritecn 出现好几次 IO 读取飙升的情况了,时间段也是随机,我就没怀疑是某个 job 的原因
    JiangZeYi
    JiangZeYi
    OP
    Aug 26, 2025
    12
    @yh7gdiaYW 是直接在默认系统盘跑的。好的,之前 PL0 升 PL1 IOPS 也没加多少,看来要换个容量大的盘
    ![9lPEe77]( "9lPEe77")
    fenglingyu
    fenglingyu
    Aug 26, 2025
    13
    我之前在阿里云的宝塔也遇到了。限制 MySQL 资源占用就解决了,你这个已经限制还这样就不知道怎么解决了
    JiangZeYi
    JiangZeYi
    OP
    Aug 26, 2025
    14
    @msg7086 有一条 count 查询没走索引,调用 33 次,扫描 2.15M ,然后还有一些扫描条数多的都是走 ORM 框架查询,没有索引,是全表扫描, 但不知道为啥 MySQL 10 分钟 RDDSK 能有 30G

    msg7086
    msg7086
    Aug 26, 2025
    15
    难说,但是我第一感觉就是查询有问题吃满 IO 。
    gamefriends
    gamefriends
    Aug 26, 2025❤️1
    16
    就拆分一下表,做一些清洗后的数据到 redis ,减少一下查询压力。
    xmh51
    xmh51
    Aug 26, 2025
    17
    @JiangZeYi 这个不就是原因吗? 全表扫描是最消耗磁盘 io 的行为
    realpg
    realpg
    Aug 26, 2025
    18
    招个 DBA 解决问题吧...
    显然单纯的你们不会用数据库...
    要不, 也可以尝试把数据盘容量开到 2TB 有效提升 iops
    yinmin
    yinmin
    Aug 26, 2025 via iPhone❤️1
    19
    加内存,内存总量大于数据库文件大小*1.5 倍
    hefish
    hefish
    Aug 26, 2025
    20
    开发不珍惜资源啊。。。。闭着眼睛往死里用啊。。。多半是某个 select 或者 update ,导致扫描了海量的 row
    BigShot404
    BigShot404
    Aug 26, 2025
    21
    我也觉得这几天阿里云是有点问题的,这两天我测试一个 mysql 的业务,用了一台突发性能,虽然机器性能不高。但三个表,加起来不超过 50 列,500 条记录左右,BPS 能跳到 100M ,这肯定不正常,而且很短时间里恢复,后续也无法复现。我感觉是阿里云本身有什么进程在扫。但我都发生在半夜。
    est
    est
    Aug 26, 2025
    22
    ESSD P1 40G 的 iops 如何。。。直接 ecs 上安装 docker 跑 mysql ????还是生产环境?
    loveshuyuan
    loveshuyuan
    Aug 26, 2025
    23
    测测阿里云磁盘的性能吧,你就不会想着去跑数据库了
    shiny
    shiny
    Aug 26, 2025 via iPhone
    24
    看下有哪些 slow sql 就基本知道排查方向了
    yayoi
    yayoi
    Aug 27, 2025 via Android❤️1
    25
    不加钱就找 dba 看,售后说的很清楚了。加钱的话阿里现在 rds 有 io 突发型的硬盘,和 pl1 费用一样,但是 io 不受容量限制,其他 io 限制还是有
    v2dev
    v2dev
    Aug 27, 2025
    26
    @est 用 docker 跑有什么问题吗,我司正准备这么干,如果数据目录直挂到宿主机的数据盘也会存在性能损耗?
    liuhan907
    liuhan907
    Aug 27, 2025
    27
    @zhuwd 几乎不存在可观测的差距
    est
    est
    Aug 27, 2025
    28
    @zhuwd 我理解宿主机就是 ecs 虚拟机?为啥不直接跑进程呢。。是 docker pull 更方便么?
    v2dev
    v2dev
    Aug 27, 2025
    29
    @est 运维起来更省心些,包括迁移、扩容之类的,也能做一些环境隔离
    JiangZeYi
    JiangZeYi
    OP
    Aug 27, 2025
    30
    @est 按照阿里的 IOPS 计算公式,40G 有 3800 IOPS 。实际 IOPS 没有跑过
    yh7gdiaYW
    yh7gdiaYW
    Aug 27, 2025
    31
    @JiangZeYi 你主贴里的图,IOPS 不已经快摸到 3.9k 了么?正好就是 40G PL1 的上限
    yh7gdiaYW
    yh7gdiaYW
    Aug 27, 2025❤️1
    32
    不过吞吐量也到 140 了,那 PL0 的话也快到顶了有一定风险,预算足够还是继续 PL1 然后把容量开大点
    esile
    esile
    Aug 28, 2025
    33
    建议直接买 rds
    fugu37
    fugu37
    Aug 30, 2025
    34
    用树莓派在 TF 卡上搭数据库 IO 性能恐怕都比楼主的服务器强🤣
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1204 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 72ms · UTC 17:34 · PVG 01:34 · LAX 09:34 · JFK 12:34
    ♥ Do have faith in what you're doing.