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

11 天前
 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 日志:

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