vagrantで立てたvmにswapを設定する。


vagrantで立てたvmにswapを設定する。vagrantのゲストサーバ側で割り当てていた物理メモリを超えるような処理をしたときにvmが落ちてしまった。
ホスト側のログにはこんな感じで出ていた。

# less /var/log/messages

Sep 10 16:39:08 r210devel kernel: Out of memory: Kill process 19223 (VBoxHeadless) score 231 or sacrifice child
Sep 10 16:39:08 r210devel kernel: Killed process 19223, UID 502, (VBoxHeadless) total-vm:3144740kB, anon-rss:15636kB, file-rss:1765760kB
Sep 10 16:39:08 r210devel kernel: EMT-1: page allocation failure. order:0, mode:0x304d2
Sep 10 16:39:08 r210devel kernel: Pid: 19232, comm: EMT-1 Not tainted 2.6.32-431.3.1.el6.x86_64 #1
vagrant status

上記で確認するとステータスは「aborted」になってしまっていた。

物理メモリの上限をあげたりしたらいいのかもしれないけど、
swapがなさそうだったのでswapを追加してみる。

以下方法。

■現状を確認する

# swapon -s
Filename                                Type            Size    Used    Priority

■スワップ用ファイルの作成。今回は1024MBで作成。

# 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.2406 s, 81.1 MB/s

■スワップ領域として初期化する。

# mkswap /swapfile
mkswap: /swapfile: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=c46d6690-8fe3-4555-b9f3-50d690dee94c

■スワップ領域を有効にする。

# swapon /swapfile

■追加されたか確認する。

# swapon -s
Filename                                Type            Size    Used    Priority
/swapfile                               file            1048568 0       -1

■再起動したときにもswapが使えるようにfstabに登録しておく。

# sh -c "echo '/swapfile swap swap defaults 0 0' >> /etc/fstab"

※そもそも物理メモリ量をゲストvmが超えた場合に落ちないようにしたいけどその方法はわかっていない・・・。
このページのような現象だけどもどうしたものか・・・。
Out of Memory: Killed process process…

メモリをそんなに使わないようにするのがいいんだろうな。。

■参考URL
Vagrant+VirtualBox+CentOS環境でMySQL5.6が起動しない場合の対処法

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です