Amazon-Ec2
每天早上 6 點左右,EC2 實例上的可用記憶體突然下降
自從我在 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
中,您會發現: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 disto。
如您所知,t2.nano 機器只有 512 MiB 的記憶體,這對於現代 64 位作業系統來說是非常小的記憶體。但是,正如你提到的,它們仍然非常適合很多事情。您可能想要添加一些交換空間並可能使您的監控不那麼激進,因為這些是我建議不應該修改或禁用的標準組件,除非您對自己正在做的事情有充分的了解。