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を作成する方法でした。