Amazon-Ec2

每天早上 6 點左右,EC2 實例上的可用記憶體突然下降

  • December 8, 2016

自從我在 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 位作業系統來說是非常小的記憶體。但是,正如你提到的,它們仍然非常適合很多事情。您可能想要添加一些交換空間並可能使您的監控不那麼激進,因為這些是我建議不應該修改或禁用的標準組件,除非您對自己正在做的事情有充分的了解。

引用自:https://serverfault.com/questions/819472