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

60 天前
 JiangZeYi

问题

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

相关截图

阿里监控:

ATOP ( 10 分钟):

慢 SQL 日志:

3753 次点击
所在节点    MySQL
34 条回复
BigShot404
59 天前
我也觉得这几天阿里云是有点问题的,这两天我测试一个 mysql 的业务,用了一台突发性能,虽然机器性能不高。但三个表,加起来不超过 50 列,500 条记录左右,BPS 能跳到 100M ,这肯定不正常,而且很短时间里恢复,后续也无法复现。我感觉是阿里云本身有什么进程在扫。但我都发生在半夜。
est
59 天前
ESSD P1 40G 的 iops 如何。。。直接 ecs 上安装 docker 跑 mysql ????还是生产环境?
loveshuyuan
59 天前
测测阿里云磁盘的性能吧,你就不会想着去跑数据库了
shiny
59 天前
看下有哪些 slow sql 就基本知道排查方向了
yayoi
59 天前
不加钱就找 dba 看,售后说的很清楚了。加钱的话阿里现在 rds 有 io 突发型的硬盘,和 pl1 费用一样,但是 io 不受容量限制,其他 io 限制还是有
zhuwd
59 天前
@est 用 docker 跑有什么问题吗,我司正准备这么干,如果数据目录直挂到宿主机的数据盘也会存在性能损耗?
liuhan907
59 天前
@zhuwd 几乎不存在可观测的差距
est
59 天前
@zhuwd 我理解宿主机就是 ecs 虚拟机?为啥不直接跑进程呢。。是 docker pull 更方便么?
zhuwd
59 天前
@est 运维起来更省心些,包括迁移、扩容之类的,也能做一些环境隔离
JiangZeYi
59 天前
@est 按照阿里的 IOPS 计算公式,40G 有 3800 IOPS 。实际 IOPS 没有跑过
yh7gdiaYW
59 天前
@JiangZeYi 你主贴里的图,IOPS 不已经快摸到 3.9k 了么?正好就是 40G PL1 的上限
yh7gdiaYW
59 天前
不过吞吐量也到 140 了,那 PL0 的话也快到顶了有一定风险,预算足够还是继续 PL1 然后把容量开大点
esile
58 天前
建议直接买 rds
fugu37
56 天前
用树莓派在 TF 卡上搭数据库 IO 性能恐怕都比楼主的服务器强🤣

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1155028

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX