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

2023-11-11 07:56:22 +08:00
 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 应该配个怎样的服务器

2929 次点击
所在节点    程序员
35 条回复
xmumiffy
2023-11-11 10:29:28 +08:00
高效云盘 IOPS : min{1,800+8*容量, 5,000}
PL0 IOPS : min{ 1,800+12*容量, 10,000 }
你的盘没几百 GB,那 IOPS 在 2k 左右是符合性能规范的
xmumiffy
2023-11-11 10:32:14 +08:00
吞吐性能是 高效云盘 min{100+0.15*容量, 140} PL0 min{100+0.25*容量, 180},你测出来也在范围内.最高也就 180MB/s,要突破 STAT 速度得 PL3.PL2 的速度刚好是 STAT 6Gps
minipeach
2023-11-11 10:38:03 +08:00
IO 问题几个月前我也有遇到了,跑个 node 工程的编译直接卡死了,然后只能强制重启
keepRun
2023-11-11 11:31:48 +08:00
石头盘真是难用,仿佛十年前的电脑
lesismal
2023-11-11 11:47:08 +08:00
云厂本来就是单物理实例虚拟化,节点配置越低、单物理实例能支撑的虚拟化容器数量越多、可卖给用户的云节点数量越多,用户多、大家都用相同的硬盘并发 IO 、就容易遇到 IO 瓶颈。
keepRun
2023-11-11 11:55:33 +08:00
云厂商这么卖真是赚呐
@lesismal
laminux29
2023-11-11 13:22:11 +08:00
虚拟化与集中存储的架构,本质就是这样的,没办法。

服务器资源本来就是很贵的,为了降低成本,才搞了各种虚拟化、各种资源集中架构。优点是把服务器使用成本降低了,资源利用率提高了,但缺点就是牺牲了性能。

既然你享受了便宜,就不要对性能有太大的奢求。真正追求性能的应用,一般是托管物理服务器。
zoharSoul
2023-11-11 20:17:30 +08:00
把 swap 关了试试
keepRun
2023-11-11 20:20:32 +08:00
@zoharSoul 已经关了,完全不敢用 swap 了
ShuWei
2023-11-11 20:27:08 +08:00
阿里云所有存储类型,都有给详细的性能指标,建议根据自己的需要进行选择,合理搭配就好
keepRun
2023-11-11 20:30:16 +08:00
@ShuWei 研究了下,确实性能按照它说的一样,就是之前疏忽了,以为跟买搬瓦工的 vps 一样,没想到普通机器 io 这么差
julyclyde
2023-11-12 19:13:11 +08:00
啥叫突发性能实例啊?
ShallowAi
2023-11-12 22:04:36 +08:00
国内云服务商所谓的云盾建议卸载,如果需要设置 SWAP ,建议使用 Zram (内存压缩),压缩部分的低速内存也比硬盘快,且不占用磁盘 I/O ,能够缓解内存不足的问题。
keepRun
2023-11-12 23:12:39 +08:00
@ShallowAi 刚刚装了个 zram-tools ,搜了下,这东西确实不错
lerry
109 天前
@minipeach 确实。。太垃圾了,我构建一个 nextjs 程序,之前用其他的顶多是慢一点,阿里云的直接卡死,只能重启

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

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

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

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

© 2021 V2EX