こんにちはますのです。
LPIC2を持っていますがLinuxはほとんど使ってこなかったので覚えていないことが多いインフラエンジニアです。
アカーン・・・。最近は調べながら色々頑張っておりますです。
最近はAzureを触る機会があり、AzureVMで作成したLinuxにスワップファイル作成も忘れないでねって言われたのです。
swapってパーティション切ったりフォーマットしたりややこしかった記憶しかない出来るのかしら。
そんな風に思っていたのですが、調べたらAzureさんすごい。
そんな風に思っていたのですが、調べたらAzureさんすごい。
conf書き換えるだけで出来るやんすばらすぃと
AWS慣れっこのわたしが手のひらをひっくり返しました。
実行する環境
・AzureVM:RHEL8.1
スワップ設定の事前確認
まずは現在のswapが設定されているか確認です。
どっちのコマンドでも確認が可能です。「free」コマンドではSwapが0byte、「/proc/swaps」ではswapファイルが無い状態を確認できます。
$ free -m
total used free shared buff/cache available
Mem: 7812 225 7353 16 234 7331
Swap: 0 0 0
$ cat /proc/swaps
Filename Type Size Used Priority
スワップ領域の設定:/etc/waagent.conf
Azureでのスワップファイルの作成は「/etc/waagent.conf」を設定します。
RedHatのページにもOSでswapファイルやswapパーティションは作らないでねと記載があるようですが、元記事が削除されているので真相は不明。
参考手順:Linux Azure 仮想マシンでメモリ不足エラーが発生する
まずは「/etc/waagent.conf」を開きます。
$ sudo vi /etc/waagent.conf
以下の3箇所を変更します。
ResourceDisk.Format=y
ResourceDisk.EnableSwap=y
ResourceDisk.SwapSizeMB= 4096
- ResourceDisk.Format:n→yへ変更
- ResourceDisk.EnableSwap:n→yへ変更
- ResourceDisk.SwapSizeMB:※今回の例は4GB(1024MB×4=4096MB)で設定
設定完了後、OS再起動を実施します。
$ sudo shutdown -r now
OS再起動後に以下のようにコマンドでSwapが確認出来れば設定が完了となります。
$ free -m
total used free shared buff/cache available
Mem: 7812 233 7348 8 231 7330
Swap: 4095 0 4095
$ cat /proc/swaps
Filename Type Size Used Priority
/mnt/swapfile file 4194300 0 -2
swapファイルのマウントポイントについてだけが解決出来ず不可解なのです。
waagent.confのデフォルトで「ResourceDisk.MountPoint=/mnt/resource」となっているのですが、スワップファイルを有効化すると「/mnt/swapfile」となってしまいました。
root権限で「/mnt/resource」フォルダを手動で作成しましたが変化無く…。
waagent.confのデフォルトで「ResourceDisk.MountPoint=/mnt/resource」となっているのですが、スワップファイルを有効化すると「/mnt/swapfile」となってしまいました。
root権限で「/mnt/resource」フォルダを手動で作成しましたが変化無く…。
マウントポイントがwaagent.confの記載内容と異なっているのは気になりましたが、機能上は生きている様子。
swapoff -aでswapを無効化したあとにスワップファイルを削除しましたが変化は現れず、解決することが出来ずでした…。ううむ力不足であります。
swapoff -aでswapを無効化したあとにスワップファイルを削除しましたが変化は現れず、解決することが出来ずでした…。ううむ力不足であります。
このあたりでまたあれこれ検証して解決出来た時は更新したいと思います。