忘備録

日々の調べ物をまとめる。アウトプットする。基本自分用。

【Linux】スワップ領域(ファイル)の作り方

環境

Amazon Linux

パーティションを切るか、ファイルで済ますか

スワップ領域の作り方を調べたところ、スワップ用のパーティションを用意する方法と、ファイルを用意する方法の2通りあることが分かった。

linux スワップ(swap)領域の作成

スワップ(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

参考