我们在AWS弹性beanstalk上运行一个docker容器,它运行良好几周但突然开始出现突然的CPU峰值(在几分钟内从~5%到~60%),有时会掉线快速退回,有时保持足够高的时间来产生自动缩放事件并启动一些实例以获得额外帮助(在CPU峰值消失之后的某个时间终止)。
有趣的是,我今天想调查这个问题,所以我已经对每个实例(总共4个)进行了调查并在所有实例上运行top
,试图找到CPU消耗过程并且惊讶地发现所有实例都有~15%的CPU忙(系统+用户组合),而EBS监控页面仍然显示服务器处于60%CPU。
我已经测量了这些数据的大部分时间,确保CPU高负载保持高位,而top
命令仍显示低值。
我还尝试使用此处的建议 - https://askubuntu.com/questions/22021/how-to-log-cpu-load测量CPU一段时间,并在直接查询服务器时获得相同的非常低的CPU统计信息。
我的问题是 - AWS监控系统是否可能无法向我显示准确的数据?无论如何都要验证监控页面中显示的数据吗?
任何帮助都将不胜感激。