表单: blog
用户: dreamable
创建日期: 2021-03-28 11:14:21 UTC
更新日期: 2021-03-28 12:22:23 UTC
引用:(Table ID 10, Record ID 41)

标题 :
坑爹的AWS
内容 :

AWS RDS头几天用着挺好,今天发现特别慢了。找了半天原因,终于发现,是burst balance见底了。

当初EC2的时候就吃过大亏,告诉你的CPU频率是多少G,但是只给你30%之类的,超过了要credit的,不超过给你credit。平时跑着没问题,credit突然耗光了,服务器就卡死了。

这次也是类似问题。特意没敢选T系列的,而是M系列的,以为没有这个credit问题。结果可好,在storage上卡你。

RDS的存储有两种类型:General Purpose (SSD) ,Provisioned IOPS (SSD),和Magnetic。Magnetic的不考虑。NND,谁想到GP是计费的。规则如下:

  1. IOPs的阀值是磁盘空间(GB)的3倍。比如,你购买了100G的SSD,你的IOPs阀值是300IOPs。
  2. 如果低于这个阀值,给你credit,如果超过了这个阀值,消耗你的阀值。当credit为0时,将限制你的速度。受限之后,数据库变得非常慢!

这个太令人发指了!怪我没有精读他那些繁琐的文档。

我本来想升级到Provisioned IOPS ,这个到没有credit系统。但是他的IOPs是需要购买的,最低是1000IOPs,价格是0.1/IOP-month,也就是最好$100/月!

人穷志短,只好继续使用GP,将空间增加到200G,这样将阀值提高到了600IOPs,看看是否够用。虽然我只用了20G的空间!

补充:

发现一个SQL查询很慢。我对device和date都做了索引,但是当对device限定,按照date排序,就很慢。不限定device,就还好。我将排序改为了ID排序,就很快。在local也有类似的问题。是不是这个很慢的查询增加了IOPS?不过奇怪的是,我更新了一些数据后,这个SQL就很快了。在local的数据库,没有做数据改动,SQL还是很慢。奇怪。

标签:
AWS