Red Hat7のswap作成方法をまとめておく

Red Hat7にswapを作成するのにハマって土日を飲み込まれました。未来の私含めて、みんなが同じ轍を踏まないようにまとめておきます。

ディスクチェック

まずはディスクをチェック。表示されている1行が1ディスクです。どのくらいのサイズのswapが作成できるかチェックします。/ (ルートディレクトリ)に 5.3G の空きがあるようなので 1G のswapを作成してみます。

$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda2 6.0G 803M 5.3G 14% /
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 17M 1.8G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup

swap用ファイル作成

/tmp配下にswapファイルを作成するディレクトリを作成します。

$ mkdir /tmp/swap

作成したディレクトリに1Gのswap用ファイルを作成します。

$ dd if=/dev/zero of=/tmp/swap/swapfile bs=1G count=1
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 5.45299 s, 197 MB/s

作成できたか確認してみます。

$ ls -lh /tmp/swap
total 1.0G
-rw-rw-r--. 1 ec2-user ec2-user 1.0G Jul 22 08:43 swapfile

出来てますね、きっちり1.0Gになっています。

swap領域作成

作成したswap用ファイルをswap領域にします。

$ mkswap /tmp/swap/swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=64f66164-128f-4333-8781-49fa13d8e64a

作成したswap領域を有効にします。

$ sudo swapon /tmp/swap/swapfile
swapon: /tmp/swap/swapfile: insecure permissions 0777, 0600 suggested.
swapon: /tmp/swap/swapfile: insecure file owner 1000, 0 (root) suggested.

次のようなエラーが起きたらchmodでファイルの権限を緩めるか、rootユーザーになって再度実行してみてください。※レンタルサーバーではswap作成が禁止されていることもあるとのことで、そもそも出来ないかもしれません。

swapon failed: Operation not permitted

swapの確認

以上でswapの作成が完了しました。きちんと出来ているか確認してみます。

$ swapon -s
Filename Type Size Used Priority
/tmp/swap/swapfile file 1048572 0 -1

出来ているようですね。念のため、freeでも実施してみます。

$ free
total used free shared buffers cached
Mem: 3689916 1359124 2330792 16896 684 1125544
-/+ buffers/cache: 232896 3457020
Swap: 1048572 0 1048572

ばっちりですね。以上、Red Hat7にswapを作成する方法でした。