Azure仮想マシンへのSwap領域の割り当て

  • 12
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Azure仮想マシンのLinuxインスタンスにはSwap領域が割り当てれていない.
自身でインスタンスサイズに応じた適切な領域を割り当てる必要がある.

最適なSwapファイルサイズ

インスタンスサイズ スワップファイルサイズ
XS (メモリが小さいため利用できない)
Small 2.625GB
Medium 3.5GB
Large 7GB
Extra Large 14GB
A6 16GB
A7 16GB

手順1

Swap領域の割り当て

sudo fallocate -l 2625m /mnt/swap
sudo chmod 600  /mnt/swap
sudo mkswap /mnt/swap
sudo swapon /mnt/swap
  1. fallocate: 適切なサイズ (2.525GB) のスワップファイルをリソースをディスクに割り当てる
  2. chmod: rootユーザーのみにスワップファイルへの読み取り/書き込み権限を持たせる
  3. mkswap: ファイルをスワップ領域として設定する
  4. swapon: スワップファイルを使用可能にする

これでひとまず完了.

freeコマンドを叩いてみると2687996Byteのスワップ領域があることが確認できる

free
             total       used       free     shared    buffers     cached
Mem:       1720520     558552    1161968          0      24808     424484
-/+ buffers/cache:     109260    1611260
Swap:      2687996          0    2687996

再起動後も有効

VMをAzureでリサイクルする場合にもスワップの設定が維持されるようにする

sudo echo “/mnt/resource/swap5g   none  swap  sw  0 0” >> /etc/fstab

参考

手順2

実はAzureのLinuxインスタンスにはWindows Azure Linux Agentというものが入っているらしく、
手順1でやったように煩雑なコマンドを打つことなくよろしくやってくれるみたい

/etc/waagent.confを編集

この部分を

ResourceDisk.EnableSwap=n 
ResourceDisk.SwapSizeMB=0

こんな感じに編集

ResourceDisk.EnableSwap=y 
ResourceDisk.SwapSizeMB=2625

イメージを作成して新しい仮想マシンを作成

再利用可能なイメージを作成して、それで新しい仮想マシンを作成
以上!

複数台作る場合はこっちが楽そう.

参考