
MySQL 是跑在 Docker 上,在某段时间内 MySQL 磁盘读取飙升,导致服务器卡死。
这是因为查询扫描行数过多导致的磁盘读取飙升吗?还是有其他原因。
磁盘读取飙升的问题该如何得到解决?优化查询 SQL ?换阿里云的 RDS ?
有大佬能解答下吗?
实例规格:ecs.c8i.xlarge
CPU:4 核 vCPU
内存:8G
磁盘:ESSD P1 40G
[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 日志:

1 bronyakaka 94 天前 应该给阿里云提工单 |
2 JiangZeYi OP @bronyakaka 已经找过售后了,售后让我们从业务侧优化 MySQL 内存使用和调用逻辑 |
3 cryptovae 94 天前 楼上两个也是神人 `6G 显存跑 32B 大模型,跑不了,然后跑去问显卡厂商要解决方案` |
5 6JSh5b6Q5Z2k 94 天前 歪个楼 为什么在 docker 中跑?生产环境吗 |
6 msg7086 94 天前 特定查询有问题?扫 3.6M 行返回 438 行,可以 explain 一下看看。 |
7 spritecn 94 天前 被某个 job 拉爆了吧 |
8 JiangZeYi OP @6JSh5b6Q5Z2k 生产环境,图方便吧,数据文件还是挂载在宿主机上 |
9 yh7gdiaYW 94 天前 加内存、调升 ESSD 等级,阿里云服务器这个问题挺蛋疼,不知道别的云服务商怎么管控的 |
10 yh7gdiaYW 94 天前 然后盘 40G 太小了,直接用默认的系统盘跑的?换个容量更大的数据盘,PL0 就行但空间要大,不然 IOPS 就那一点 |
12 JiangZeYi OP |
13 fenglingyu 94 天前 我之前在阿里云的宝塔也遇到了。限制 MySQL 资源占用就解决了,你这个已经限制还这样就不知道怎么解决了 |
14 JiangZeYi OP @msg7086 有一条 count 查询没走索引,调用 33 次,扫描 2.15M ,然后还有一些扫描条数多的都是走 ORM 框架查询,没有索引,是全表扫描, 但不知道为啥 MySQL 10 分钟 RDDSK 能有 30G ![]() |
15 msg7086 94 天前 难说,但是我第一感觉就是查询有问题吃满 IO 。 |
16 gamefriends 94 天前 就拆分一下表,做一些清洗后的数据到 redis ,减少一下查询压力。 |
18 realpg PRO 招个 DBA 解决问题吧... 显然单纯的你们不会用数据库... 要不, 也可以尝试把数据盘容量开到 2TB 有效提升 iops |
19 yinmin 94 天前 via iPhone 加内存,内存总量大于数据库文件大小*1.5 倍 |
20 hefish 93 天前 开发不珍惜资源啊。。。。闭着眼睛往死里用啊。。。多半是某个 select 或者 update ,导致扫描了海量的 row |
21 BigShot404 93 天前 我也觉得这几天阿里云是有点问题的,这两天我测试一个 mysql 的业务,用了一台突发性能,虽然机器性能不高。但三个表,加起来不超过 50 列,500 条记录左右,BPS 能跳到 100M ,这肯定不正常,而且很短时间里恢复,后续也无法复现。我感觉是阿里云本身有什么进程在扫。但我都发生在半夜。 |
22 est 93 天前 ESSD P1 40G 的 iops 如何。。。直接 ecs 上安装 docker 跑 mysql ????还是生产环境? |
23 loveshuyuan 93 天前 测测阿里云磁盘的性能吧,你就不会想着去跑数据库了 |
24 shiny PRO 看下有哪些 slow sql 就基本知道排查方向了 |
25 yayoi 93 天前 via Android 不加钱就找 dba 看,售后说的很清楚了。加钱的话阿里现在 rds 有 io 突发型的硬盘,和 pl1 费用一样,但是 io 不受容量限制,其他 io 限制还是有 |
32 yh7gdiaYW 93 天前 不过吞吐量也到 140 了,那 PL0 的话也快到顶了有一定风险,预算足够还是继续 PL1 然后把容量开大点 |
33 esile 92 天前 建议直接买 rds |
34 fugu37 90 天前 用树莓派在 TF 卡上搭数据库 IO 性能恐怕都比楼主的服务器强 |