买了个阿里云香港突发性能实例 t6 ecs,硬盘 io 导致总是卡

180 天前
 keepRun

我从最初的高效云盘升级到 ESSD PL0 ,我发现 ECS 的 IO 是真的坑爹,完全不能挂载为虚拟内存用,一旦系统使用硬盘作为虚拟内存,直接系统卡死好几分钟,只能强行关机重启。 用 hdparm 测试硬盘速度:

hdparm -Tt --direct /dev/vda3

/dev/vda3:
 Timing O_DIRECT cached reads:   326 MB in  2.02 seconds = 161.44 MB/sec
 Timing O_DIRECT disk reads: 430 MB in  3.01 seconds = 142.82 MB/sec

速度是这样,我感觉这也太坑爹了吧,这不是机械硬盘的速度吗? IOPS 给的是 2k 。

我用 docker 安装个 flask 、docker 启动 mysql 、docker compose 关闭 mysql 时不时就整个系统卡死,只能强行停止系统,然后重启,已经好几次了。每次系统卡死看云盘监控都是 IO 达到极限。

我觉得很奇怪,我的机器是 2 核 1G 内存,我就 docker 启动个 mysql 都能给我整除整个系统卡死的问题,这 IO 也太差劲了吧。一开始我以为是内存问题,从 512m 加到 1G ,还是会出现卡死是系统 IO 打满情况;对比我在搬瓦工卖的 512m 1 核的小机器,我直接分了 1G 作为 swap 空间,跑同样的 docker compose 服务完全没问题,从未出现整个系统卡死情况,这阿里云的 ecs 咋就这么不争气?

dockerfile 环境:mysql:8.0.35,python 安装的依赖:

Flask==3.0.0
pillow-avif-plugin==1.4.1
pillow-heif==0.13.1
Pillow~=10.1.0

我查了好几次到底是啥问题,头都大了,发现最大可能就是这羸弱的 IO 导致,一开始我还用 swap ,后来开都不敢开,但是系统好像自动在内存不足时会用硬盘当 swap 空间,我已经打开了 ecs 的无性能约束模式。

原本我想用这台阿里云 ecs 跑 java spring 项目+python flask+openresty+mysql ,结果光一个 mysql 就偶现让 ecs 卡死,我想问下各位我这种情况正常吗?阿里云硬盘 IO 这正常吗?我如果想自己搭建个 mysql 应该配个怎样的服务器

2384 次点击
所在节点    程序员
34 条回复
keepRun
180 天前
感觉阿里云 ecs 适合计算不适合有稍微高的 io ,存储应该走 oss 、云数据库,这样本地基本没啥 io ,当然要是肯加钱,可以去开更好的 essd
lgh
180 天前
我原来以为只有腾讯的轻量云服务器会这样,直到前两天买了 99 元/年的阿里云 2 核 2G 丐中丐……

昨天用 docker 跑着 mysql 、redis 、rabbitmq (全都还是空的),用 pdm 安装到 numpy 和 pandas 的时候也卡死了几次,现象和楼主一样。
从监控上看就是 iops 突然打满到 2k ,等重启恢复后用 free 看其实并没有开 swap 。

最后把 docker 容器全部停了才能顺利安装。
keepRun
180 天前
原来你也是,同是天涯沦落人了。

我找了好久的问题,我甚至怀疑 docker 版本、mysql 版本是否引入什么 bug ,怀疑 cpu 是否性能不够了,怀疑内存大小 512m 是否不够用,试了很多,我觉得问题最有可能就是 IO ,绝对不能有任何虚拟内存在硬盘上交互,否则系统卡死,因为 IOPS 太低了
9of6
180 天前
我也遇到过,执行 dnf update 时卡住,控制台看 iops 和磁盘读带宽都拉满了。关闭"免费安全加固"后就没遇到这个问题了。
keepRun
180 天前
免费安全加固 这么坑爹?
ripperdev
180 天前
@9of6 只能在系统里把 AliYunDun 进程 kill 掉么?阿里云的控制台能关吗?
flyqie
180 天前
@keepRun #5

建议善用 @功能,不然对方看不到你的回复。
yinmin
180 天前
你是选哪个操作系统的? 换一个操作系统试试
yinmin
180 天前
另外,你这个情况大概率是突发性能的余量不足导致的。安装软件会用掉过多的突发性能的点数,你可以登录阿里云平台查一下突发性能的剩余情况。

安装后等一天,让突发点数回血,之后就会稳定的。
BH1SMB
180 天前
BWH UAE SRV1/dev/sda2:
Timing cached reads: 12898 MB in 2.00 seconds = 6457.97 MB/sec
Timing buffered disk reads: 5808 MB in 3.00 seconds = 1935.55 MB/sec
BH1SMB
180 天前
QCLOUD_GZ_SRV1 /dev/vda1:
Timing cached reads: 18536 MB in 1.99 seconds = 9298.70 MB/sec
Timing buffered disk reads: 588 MB in 3.01 seconds = 195.37 MB/sec
yinmin
180 天前
跑 mysql 推荐“计算型”的虚拟服务器
keepRun
180 天前
@9of6 免费安全加固 这么坑爹?
keepRun
180 天前
@yinmin 我看监控: 超额 CPU 积分 一直是 0 ,累积 CPU 积分有 174 ,应该不是被限制了,况且我打开了无限制性能
keepRun
180 天前
@BH1SMB 搬瓦工给的 IO 是真的好,多年前买的便宜传家宝比我现在用的这个 ecs 好多了,128 一年吊打阿里云 ecs
veike
180 天前
发工单
zapper
180 天前
我发过工单也找过客服。他说是我程序问题,直接退款了。
9of6
180 天前
@keepRun 我是“更换操作系统”时没有勾选“免费安全加固”,好像控制台也能关云盾。

之前开了两台同配置的 Centos Stream 9 ,一台勾了“免费安全加固”,一台没勾,然后我发现开了的就经常死机。
9of6
180 天前
@ripperdev 应当是在控制台里关,直接 kill 后它好像还会自己拉起来
leaflxh
180 天前
经常有阿里云用户因石头盘导致的性能问题而发帖

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

https://www.v2ex.com/t/990849

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

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

© 2021 V2EX