› 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 · 7084 views
    This topic created in 399 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
        1
    bronyakaka  
       Aug 26, 2025
    应该给阿里云提工单
    JiangZeYi
        2
    JiangZeYi  
    OP
       Aug 26, 2025
    @bronyakaka 已经找过售后了,售后让我们从业务侧优化 MySQL 内存使用和调用逻辑
    cryptovae
        3
    cryptovae  
       Aug 26, 2025   ❤️ 2
    楼上两个也是神人

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

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