【Linux】スワップ領域(ファイル)の作り方
環境
パーティションを切るか、ファイルで済ますか
スワップ領域の作り方を調べたところ、スワップ用のパーティションを用意する方法と、ファイルを用意する方法の2通りあることが分かった。
スワップ(swap)領域を作成するには、mkswapコマンドを使います。指定したパーティション全てをスワップ(swap)領域にすることもできるし、ファイルをスワップ(swap)領域とすることもできます。
で、どちらでやるのが良いか(今回はEC2という前提)
Amazon EC2(Linux)のswap領域ベストプラクティス | Developers.IO
スワップのためにボリュームやパーティーションを追加するのは、EBSがボリュームサイズで課金されることからコスト面で敷居が高いです。そのため、既存ボリュームにswapファイルを追加のがお奨めです。
また、知り合いのインフラエンジニアに伺ったところ、「ファイルでしかスワップ領域を作ったことない」とのことだったので、とりあえずスワップファイルでスワップ領域を作れればよさそう。
というわけのなので、今回はスワップファイルでスワップ領域を作成する。
スワップファイルの作り方
1. ファイルの用意
まずは、スワップ用ファイルを用意する。
サイズは今回1GB。
dd
コマンドについてはコチラ。
# dd if=/dev/zero of=/Swapfile bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 13.0465 s, 82.3 MB/s
権限の変更をする。
変更しておかないと、スワップファイルを有効化した際に警告を受けることになる。
# chmod 600 /Swapfile
参考:権限未設定時の警告
swapon: /Swapfile: insecure permissions 0644, 0600 suggested.
2. フォーマット
mkswap
でスワップファイル用としてフォーマットする。
# mkswap /Swapfile Setting up swapspace version 1, size = 1048572 KiB no label, UUID=a209fc68-4a95-4e91-ae85-3d5bd09339b7
3. 有効化
swapon
でスワップファイルを有効化する。
# swapon /Swapfile
確認
# swapon -s Filename Type Size Used Priority /Swapfile file 1048572 0 -1
Finish!!
X. おまけ
スワップファイルの無効化はswapoff
でできる
# swapoff /Swapfile