如何监控Amazon EC2 t4g.small实例的网络突发信用余额(Network Burst Credit Balance)?
如何监控Amazon EC2 t4g.small实例的网络突发信用余额(Network Burst Credit Balance)?
嗨,我来帮你搞定这个问题!正如你了解的那样,T系列实例启动时会获得最大额度的网络I/O信用,信用耗尽后就会降到基准带宽,平时用低于基准带宽的时候还能积累信用,但确实CloudWatch默认指标里只提供了CPU和EBS的CreditBalance,看不到网络的,这是很多T系列用户都会遇到的小坑。
下面给你几种可行的监控方法:
通过EC2实例元数据实时查询
这是获取当前网络信用余额最直接的方式,你只需要在你的t4g.small实例内部执行几条简单的命令就行:- 先获取实例的网卡MAC地址:
curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/ - 用上一步得到的MAC地址替换下面命令里的
[你的网卡MAC地址],就能查到当前的网络突发信用余额了:curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/[你的网卡MAC地址]/burst-credit-balance
- 先获取实例的网卡MAC地址:
推送到CloudWatch自定义指标长期监控
如果你想持续追踪这个余额的变化,而不是每次手动查,可以写个简单的Shell脚本(Linux实例),定期调用上面的元数据命令获取数值,然后用AWS CLI把数据推送到CloudWatch的自定义指标里。这样你就能在CloudWatch控制台里创建专属仪表盘,像监控CPU信用余额那样,随时查看网络信用的消耗和积累情况了。为啥CloudWatch默认看不到这个指标?
目前AWS并没有把网络突发信用余额设为CloudWatch的默认发布指标,只有CPU和EBS的信用余额是默认提供的,这就是你之前在CloudWatch里只看到那两项的原因。
另外,针对你遇到的网络超时问题,给你个小提示:当网络信用耗尽后,你的t4g.small实例网络带宽会降到0.25 Gbps的基准值(平时突发最高能到10 Gbps),如果你的服务此时需要更高的带宽,就容易出现超时情况,所以监控信用余额刚好能帮你提前预判这类问题。
备注:内容来源于stack exchange,提问作者dmchmk




