我从最初的高效云盘升级到 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 应该配个怎样的服务器
1
keepRun OP 感觉阿里云 ecs 适合计算不适合有稍微高的 io ,存储应该走 oss 、云数据库,这样本地基本没啥 io ,当然要是肯加钱,可以去开更好的 essd
|
2
lgh 364 天前 via iPhone
我原来以为只有腾讯的轻量云服务器会这样,直到前两天买了 99 元/年的阿里云 2 核 2G 丐中丐……
昨天用 docker 跑着 mysql 、redis 、rabbitmq (全都还是空的),用 pdm 安装到 numpy 和 pandas 的时候也卡死了几次,现象和楼主一样。 从监控上看就是 iops 突然打满到 2k ,等重启恢复后用 free 看其实并没有开 swap 。 最后把 docker 容器全部停了才能顺利安装。 |
3
keepRun OP 原来你也是,同是天涯沦落人了。
我找了好久的问题,我甚至怀疑 docker 版本、mysql 版本是否引入什么 bug ,怀疑 cpu 是否性能不够了,怀疑内存大小 512m 是否不够用,试了很多,我觉得问题最有可能就是 IO ,绝对不能有任何虚拟内存在硬盘上交互,否则系统卡死,因为 IOPS 太低了 |
4
9of6 364 天前
我也遇到过,执行 dnf update 时卡住,控制台看 iops 和磁盘读带宽都拉满了。关闭"免费安全加固"后就没遇到这个问题了。
|
5
keepRun OP 免费安全加固 这么坑爹?
|
8
yinmin 364 天前 via iPhone
你是选哪个操作系统的? 换一个操作系统试试
|
9
yinmin 364 天前 via iPhone
另外,你这个情况大概率是突发性能的余量不足导致的。安装软件会用掉过多的突发性能的点数,你可以登录阿里云平台查一下突发性能的剩余情况。
安装后等一天,让突发点数回血,之后就会稳定的。 |
10
BH1SMB 364 天前
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 |
11
BH1SMB 364 天前
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 |
12
yinmin 364 天前 via iPhone
跑 mysql 推荐“计算型”的虚拟服务器
|
16
veike 364 天前
发工单
|
17
zapper 364 天前
我发过工单也找过客服。他说是我程序问题,直接退款了。
|
18
9of6 364 天前
@keepRun 我是“更换操作系统”时没有勾选“免费安全加固”,好像控制台也能关云盾。
之前开了两台同配置的 Centos Stream 9 ,一台勾了“免费安全加固”,一台没勾,然后我发现开了的就经常死机。 |
20
leaflxh 364 天前
经常有阿里云用户因石头盘导致的性能问题而发帖
|
21
xmumiffy 364 天前
高效云盘 IOPS : min{1,800+8*容量, 5,000}
PL0 IOPS : min{ 1,800+12*容量, 10,000 } 你的盘没几百 GB,那 IOPS 在 2k 左右是符合性能规范的 |
22
xmumiffy 364 天前
吞吐性能是 高效云盘 min{100+0.15*容量, 140} PL0 min{100+0.25*容量, 180},你测出来也在范围内.最高也就 180MB/s,要突破 STAT 速度得 PL3.PL2 的速度刚好是 STAT 6Gps
|
23
minipeach 364 天前
IO 问题几个月前我也有遇到了,跑个 node 工程的编译直接卡死了,然后只能强制重启
|
24
keepRun OP 石头盘真是难用,仿佛十年前的电脑
|
25
lesismal 364 天前
云厂本来就是单物理实例虚拟化,节点配置越低、单物理实例能支撑的虚拟化容器数量越多、可卖给用户的云节点数量越多,用户多、大家都用相同的硬盘并发 IO 、就容易遇到 IO 瓶颈。
|
27
laminux29 364 天前
虚拟化与集中存储的架构,本质就是这样的,没办法。
服务器资源本来就是很贵的,为了降低成本,才搞了各种虚拟化、各种资源集中架构。优点是把服务器使用成本降低了,资源利用率提高了,但缺点就是牺牲了性能。 既然你享受了便宜,就不要对性能有太大的奢求。真正追求性能的应用,一般是托管物理服务器。 |
28
zoharSoul 364 天前
把 swap 关了试试
|
30
ShuWei 364 天前
阿里云所有存储类型,都有给详细的性能指标,建议根据自己的需要进行选择,合理搭配就好
|
32
julyclyde 363 天前
啥叫突发性能实例啊?
|
33
ShallowAi 363 天前 via Android 1
国内云服务商所谓的云盾建议卸载,如果需要设置 SWAP ,建议使用 Zram (内存压缩),压缩部分的低速内存也比硬盘快,且不占用磁盘 I/O ,能够缓解内存不足的问题。
|