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是计费的。规则如下:
这个太令人发指了!怪我没有精读他那些繁琐的文档。
我本来想升级到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还是很慢。奇怪。