現在GCPのVM(仮想マシーン)インスタンスへサーバ環境を移行検討中。トライアルとして新規登録(クレジットカード登録が必要ですが、あくまで個人認証としてのみ使用するそうです)すると$300相当のクレジットが適用されるので、小規模サーバであれば最大で1年間は実質無料で利用できます(カード会社からは一切請求されることはありません)。AWSなど他のVMサービスと比較して、トライアル経過後に自動的に有料サービスに移行することがないことと、トライアルでも、よりグレードの高いサービスも選択できるのでGCPを試用することにしました。
同グレードのVMサービスを選択した場合、他社のサービスと比較して割安です(コンピュータリソースの余剰部分を利用するプリエンティティブVMインスタンスとすることで更に安くなります)。
GCPのVMインスタンス(仮想マシーン)のOSとしてUbuntu18.04を導入。メモリー1.6GのVMインスタンスを選択しましたがデフォルトではswapメモリが設定されていないため、以下手順でswapメモリを設定します(パフォーマンスが犠牲になるため、出来ればswapは使用しない方がいいです)。
ブラウザのGCP画面でssh接続のターミナルを起動
$ sudo fallocate -l 4G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ sudo swapon -s
/etc/fstabに以下追加
/swapfile none swap sw 0 0
swapfile削除
swapoff後swapfileを削除します。アクセス権が600なので7XXに変更します。
$ sudo swapoff /swapfile
$ sudo chmod 777 /swapfile
$ sudo rm /swapfile
swapfileのサイズ変更は既存のswapfileを削除後行います。
fallocateから再度実行してサイズ変更して下さい。
2021/11/05:追記)
fallocateによる方法は、OSが直接アクセスできるファイルシステムでswap領域を確保するため推奨されていません。ddによる方法を選択しましょう。
Ubuntu Swap Help
https://help.ubuntu.com/community/SwapFaq
fallocateによる方法
$ sudo fallocate -l 1g /mnt/1GiB.swap
fallocate size suffixes: g = Giga, m = Mega, etc. (See man fallocate).
ddによる方法
fallocateによる方法を提示していますが、ddを推奨します。
If fallocate fails or it not available, you can use dd:
$ sudo dd if=/dev/zero of=/mnt/1GiB.swap bs=1024 count=1048576
- 1GiB = 1024 MiB = 1048576 KiB
- 2GiB = 2 × 1048576 = 2097152 KiB
We need to set the swap file permissions to 600 to prevent other users from being able to read potentially sensitive information from the swap file.
$ sudo chmod 600 /mnt/1GiB.swap
Format the file as swap:
$ sudo mkswap /mnt/1GiB.swap
Enable use of Swap File
$ sudo swapon /mnt/1GiB.swap
The additional swap is now available and verified with: cat /proc/swaps
Enable Swap File at Bootup
Add the swap file details to /etc/fstab so it will be available at bootup:
$ echo '/mnt/1GiB.swap swap swap defaults 0 0' | sudo tee -a /etc/fstab
Swapサイズ確認
$ cat /proc/swaps
Filename Type Size Used Priority
/home/swapfile file 1048576 1048576 -1
$ free -h
total used free shared buff/cache available
Mem: 15G 9.3G 454M 4.0G 5.8G 1.9G
Swap: 1.0G 1.0G 0B
Disable and Remove a Swap File
Disable the swap file from the running system and the delete it:
$ sudo swapoff /mnt/1Gib.swap
$ sudo rm /mnt/1Gib.swap
Remove the swap file details from fstab:
$ gksudo gedit /etc/fstab
Removing the swap file line
/mnt/1GiB.swap swap swap defaults 0 0
swapの無効化
一時的に無効にする場合: -a
オプションでswapメモリー全消去
注)再起動後に再びswapは有効になります。
$ sudo swapoff -a
完全無効化
$ sudo nano /etc/fstab
#/swapfile none swap sw 0 0 ---> コメントアウトして下さい