[Amazon Lightsail] 低スペックでも、スワップ領域のチューニングで大幅改善(Spring)

Amazon Lightsailはリーズナブルなため導入しやすいのですが、メモリ1GBの低スペックプランで、Springなどのサーバーサイド処理を搭載しようとすると、CPU、メモリが高負荷状態となり、すぐにサーバーダウンしてしまいます。。

リーズナブルな低スペックプランで、サーバーサイド処理が搭載できないものかと色々と模索したところ、スワップ領域を調整することでメモリ1GBでもSpringをわりと快適に動作させることができましたので、当記事ではスワップ領域についてや、スワップ領域の変更手順について整理していきたいと思います。

ストレージ40GB、メモリ1GBの場合、スワップ領域はどの程度あげるのが良いか?

Amazon Lightsailにて、ストレージ40GB、メモリ1GBのプランのものを使用していますが、このスペックの場合、どの程度のスワップ領域とするのが妥当かをChatGPTに聞いてみようと思います。

ChatGPTの回答

1GBのメモリに対してスワップ領域を設定する場合、一般的にはメモリの1.5倍から2倍が目安とされています。したがって、1.5GBから2GB程度のスワップ領域に設定するのがよいでしょう。

推奨スワップサイズ:1.5倍(1.5GB):
システムが軽いタスクを処理する場合や、スワップの利用があまり頻繁でないときに最適。

2倍(2GB):
多くのプロセスやメモリを消費するアプリケーションが実行される環境では、2GBがより安定した動作を提供することが期待されます。

スワップ領域の設定変更手順

スワップ領域を2GBにする設定変更手順をChatGPTにレクチャーしてもらいながら、見ていきます!

0.現状のスワップ領域を確認

free -m 
               total        used        free      shared  buff/cache   available
Mem:             950         246         121           1         582         563
Swap:            634         147         487

1. スワップファイルの作成

まず、新しいスワップファイルを作成します。(以下の例は2GB)
サイズは変更可能です。

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

2. スワップファイルのパーミッション設定

作成したスワップファイルの権限を変更します。

sudo chmod 600 /swapfile

3. スワップファイルの設定

sudo mkswap /swapfile

4. スワップファイルを有効化

sudo swapon /swapfile

5. 永続化の設定

再起動後もスワップが有効になるようにするため、/etc/fstab ファイルにスワップファイルを追加します。

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

6. 設定確認

以下のコマンドでスワップ領域が増えていることを確認できます。

free -m
               total        used        free      shared  buff/cache   available
Mem:             950         200          71           1         678         602
Swap:           2682         158        2524

おわりに

最後まで読んでいただき、ありがとうございました!

当初、メモリ4GBのプランに変更しようと思いましたが、追加プランの契約に伴い、サービスクォータの引き上げリクエストが必要とことで、これがよくわからず申請にも時間がかかり、待ち時間に試しでスワップ領域の変更をしてみたところ、プラン変更せずともSpringを動かすことが実施できましたのでラッキーでした!

Springで、重たい処理を実施すると怪しい感じはしますが、色々試してみることが大事ですね。


いいなと思ったら応援しよう!