背景
先日、EC2インスタンス上でメモリ不足によりoom-killer
が発動し、メモリを一番消費していたプロセスが強制終了されるという問題が発生しました。この問題を受け、メモリ不足への一時的な対応としてSwapファイルを作成しました。
メモリ使用量の変化
CloudWatch Agentでメモリ使用量をモニタリングしていたところ、メモリの使用量が700MBから500MBに減少していることに気づきました。この減少の原因を調査した結果、Swapファイルにメモリのデータが移動したためであることが判明しました。
Swapイベントの確認
以下のコマンドを使用して、Swapのイベントが発生した記録を確認しました。
# Swapのイベントが発生した記録を確認します
$ sar -S 1 10
Linux {ip.amzn2.x86_64 (ip-{ip}.ec2.internal) 2024年09月06日 _x86_64_ (1 CPU)
05時16分47秒 kbswpfree kbswpused %swpused kbswpcad %swpcad
05時16分48秒 236284 288000 54.93 51132 17.75
05時16分49秒 236284 288000 54.93 51132 17.75
05時16分50秒 236284 288000 54.93 51132 17.75
05時16分51秒 236284 288000 54.93 51132 17.75
05時16分52秒 236284 288000 54.93 51132 17.75
また、システム全体のメモリおよびSwapの使用状況も以下のコマンドで確認しました。
# システム全体のメモリおよびスワップの使用状況を確認
$ free -h
total used free shared buff/cache available
Mem: 964M 519M 128M 76K 316M 300M
Swap: 511M 281M 230M
メモリ使用量が700MBから500MBに減少した時点で、ちょうどSwapファイルへのデータ移行が確認され、原因が特定できました。