每天早上 6 点左右,EC2 实例上的可用内存突然下降

每天早上 6 点左右,EC2 实例上的可用内存突然下降

几个月来,我注意到,自从我在 AWS 上设置服务器以来,我的实例几乎每天都会在固定时间(大约 UTC 时间早上 6 点)出现可用内存突然下降的情况。这是一个 t2.nano 实例,足以满足我的需求。当时没有异常活动,通常没有连接到服务器(这是一个普通的个人网站)。我创建了一个服务器监视 Python 脚本来记录此情况并在内存下降时重新启动服务器:

2016-12-08 06:14:30,971 - AWS_Server_Watcher - INFO: Free memory: 280 MB
2016-12-08 06:16:31,096 - AWS_Server_Watcher - INFO: Free memory: 280 MB
2016-12-08 06:18:31,231 - AWS_Server_Watcher - INFO: Free memory: 280 MB
2016-12-08 06:20:31,365 - AWS_Server_Watcher - INFO: Free memory: 280 MB
2016-12-08 06:22:31,499 - AWS_Server_Watcher - INFO: Free memory: 280 MB
2016-12-08 06:24:31,634 - AWS_Server_Watcher - INFO: Free memory: 280 MB
2016-12-08 06:26:31,822 - AWS_Server_Watcher - INFO: Free memory: 44 MB
2016-12-08 06:26:31,822 - AWS_Server_Watcher - INFO: Server restarted
2016-12-08 06:27:09,751 - AWS_Server_Watcher - INFO: Server Watcher starting up
2016-12-08 06:29:09,905 - AWS_Server_Watcher - INFO: Free memory: 281 MB
2016-12-08 06:31:10,058 - AWS_Server_Watcher - INFO: Free memory: 281 MB
2016-12-08 06:33:10,209 - AWS_Server_Watcher - INFO: Free memory: 281 MB

有人知道发生了什么吗?我怀疑这与 EC2 基础设施有关,超出了我的控制范围。但我没有签署 AWS 的付费支持计划,所以我无法向他们询问。

答案1

我很惊讶没有更多像我这样的报告。

这可能是因为这是正常的、预期的行为......但这与 AWS 没有任何关系。

这是已安装的服务器操作系统本身,执行预定的日常维护/后台工作。

在停止调查之前,实际上你已经非常接近了。

在该文件中/etc/crontab,你会发现以下内容:

25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

看起来很熟悉,对吧(从您找到的系统日志消息来看)?现在,查看该目录中的文件。

$ ls /etc/cron.daily

apport  apt  aptitude  bsdmainutils  dpkg  logrotate  man-db  mlocate  
ntp  popularity-contest  update-notifier-common  upstart

这些脚本每天从 06:25 开始依次运行,无论服务器配置使用哪个时区,这些脚本几乎在任何地方的每台 Ubuntu 机器上都运行。可能会有例外,但我从未使用过没有类似功能的任何其他 Linux 发行版。

如您所知,t2.nano 机器只有 512 MiB 内存,对于现代 64 位操作系统来说,这是一个非常小的内存量。但是,正如您所提到的,它们对于很多事情来说仍然是完美的。您可能需要添加一些交换空间,并可能使您的监控稍微不那么激进,因为这些是标准组件,我建议不要修改或禁用它们,除非您对所做的事情有充分的了解。

相关内容