为什么AWS EC2 t3a系列实例的计算能力时好时坏
项目上有一台t3a.medium的实例,运行了几个定时任务,最近发现这些定时任务的运行时间明显过长,很是奇怪。
检查了内存,是足够的,CPU使用率似乎也OK。远程登录到该实例,发现速度明显比之前慢,考虑到之前遇到类似情况的情景,都是实例上运行程序消耗CPU或者内存严重,所以决定还是排查CPU和内存有关的原因。
检查了最近该实例上运行任务的历史,发现几天前跑了一个耗时较长、多任务的脚本,在此期间,其他任务的运行时间超时严重。但是奇怪的是,在该任务结束后,其他任务的运行时间虽然有所减少,但是仍然超时很多。
查阅AWS t3a系列实例的配置,发现: T3实例是下一代可突增的通用实例类型,T3提供基准级别的CPU性能,并能够根据需要随时突增CPU使用率。
其实这里的CPU性能受Credit限制,如果Credit用完,就只能使用有限的CPU计算能力。当运行消耗CPU严重的任务时,Credit很快被消耗完毕,即使该任务结束了,其他定时任务运行时也无法得到足够的CPU计算能力。
可惜的是t3a.large与t3a.medium相比,CPU的能力并没有大的提升,除非升级到t3a.xlarge,但是价格差不多是t3a.medium的4倍了。