我从最初的高效云盘升级到 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 应该配个怎样的服务器

感觉阿里云 ecs 适合计算不适合有稍微高的 io ,存储应该走 oss 、云数据库,这样本地基本没啥 io ,当然要是肯加钱,可以去开更好的 essd

我原来以为只有腾讯的轻量云服务器会这样,直到前两天买了 99 元/年的阿里云 2 核 2G 丐中丐……昨天用 docker 跑着 mysql 、redis 、rabbitmq (全都还是空的),用 pdm 安装到 numpy 和 pandas 的时候也卡死了几次,现象和楼主一样。从监控上看就是 iops 突然打满到 2k ,等重启恢复后用 free 看其实并没有开 swap 。最后把 docker 容器全部停了才能顺利安装。

原来你也是,同是天涯沦落人了。我找了好久的问题,我甚至怀疑 docker 版本、mysql 版本是否引入什么 bug ,怀疑 cpu 是否性能不够了,怀疑内存大小 512m 是否不够用,试了很多,我觉得问题最有可能就是 IO ,绝对不能有任何虚拟内存在硬盘上交互,否则系统卡死,因为 IOPS 太低了

我也遇到过,执行 dnf update 时卡住,控制台看 iops 和磁盘读带宽都拉满了。关闭"免费安全加固"后就没遇到这个问题了。

免费安全加固 这么坑爹?

只能在系统里把 AliYunDun 进程 kill 掉么?阿里云的控制台能关吗?

#5建议善用 @功能,不然对方看不到你的回复。

你是选哪个操作系统的? 换一个操作系统试试

另外,你这个情况大概率是突发性能的余量不足导致的。安装软件会用掉过多的突发性能的点数,你可以登录阿里云平台查一下突发性能的剩余情况。安装后等一天,让突发点数回血,之后就会稳定的。

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

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

跑 mysql 推荐“计算型”的虚拟服务器

免费安全加固 这么坑爹?

我看监控: 超额 CPU 积分 一直是 0 ,累积 CPU 积分有 174 ,应该不是被限制了,况且我打开了无限制性能

搬瓦工给的 IO 是真的好,多年前买的便宜传家宝比我现在用的这个 ecs 好多了,128 一年吊打阿里云 ecs

发工单

我发过工单也找过客服。他说是我程序问题,直接退款了。

我是“更换操作系统”时没有勾选“免费安全加固”,好像控制台也能关云盾。之前开了两台同配置的 Centos Stream 9 ,一台勾了“免费安全加固”,一台没勾,然后我发现开了的就经常死机。

应当是在控制台里关,直接 kill 后它好像还会自己拉起来

经常有阿里云用户因石头盘导致的性能问题而发帖

高效云盘 IOPS : min{1,800+8容量, 5,000}PL0 IOPS : min{ 1,800+12容量, 10,000 }你的盘没几百 GB,那 IOPS 在 2k 左右是符合性能规范的

吞吐性能是 高效云盘 min{100+0.15容量, 140} PL0 min{100+0.25容量, 180},你测出来也在范围内.最高也就 180MB/s,要突破 STAT 速度得 PL3.PL2 的速度刚好是 STAT 6Gps

IO 问题几个月前我也有遇到了,跑个 node 工程的编译直接卡死了,然后只能强制重启

石头盘真是难用,仿佛十年前的电脑

云厂本来就是单物理实例虚拟化,节点配置越低、单物理实例能支撑的虚拟化容器数量越多、可卖给用户的云节点数量越多,用户多、大家都用相同的硬盘并发 IO 、就容易遇到 IO 瓶颈。

云厂商这么卖真是赚呐

虚拟化与集中存储的架构,本质就是这样的,没办法。服务器资源本来就是很贵的,为了降低成本,才搞了各种虚拟化、各种资源集中架构。优点是把服务器使用成本降低了,资源利用率提高了,但缺点就是牺牲了性能。既然你享受了便宜,就不要对性能有太大的奢求。真正追求性能的应用,一般是托管物理服务器。

把 swap 关了试试

已经关了,完全不敢用 swap 了

阿里云所有存储类型,都有给详细的性能指标,建议根据自己的需要进行选择,合理搭配就好

研究了下,确实性能按照它说的一样,就是之前疏忽了,以为跟买搬瓦工的 vps 一样,没想到普通机器 io 这么差