自从我在 AWS 上设置服务器以来,我已经注意到几个月来,我的实例几乎每天都会在标准时间(世界标准时间早上 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 签署付费支持计划,所以我无法向他们询问。
这可能是因为这是正常的预期行为……但这与 AWS 没有任何关系。
这是已安装的服务器操作系统,它本身正在执行计划的日常维护/后台作业。
在您停止调查之前,您实际上已经非常接近了。
在文件
/etc/crontab
中,您会发现:看起来很熟悉,对吧(从您找到的系统日志消息中)?现在,查看该目录中的文件。
这些脚本中的每一个都一个接一个地运行,每天从 06:25 开始,在服务器配置使用的任何时区,基本上在每台股票 Ubuntu 机器上,无处不在。可能有例外,但我从未使用过任何其他没有非常相似的 Linux disto。
如您所知,t2.nano 机器只有 512 MiB 的内存,这对于现代 64 位操作系统来说是非常小的内存。但是,正如你提到的,它们仍然非常适合很多事情。您可能想要添加一些交换空间并可能使您的监控不那么激进,因为这些是我建议不应该修改或禁用的标准组件,除非您对自己正在做的事情有充分的了解。