docker-machineのswap領域を一時的に増やす(docker toolbox のホストOSのswapを増やす)

メモリを沢山使うツールを実行している時に、「Killed]というメッセージを残してOMM-Killerに殺されてしまう現象が発生した。 一時的にでも使えるメモリが増えればよかったので、swap領域を拡張してみることにしました。

現状の確認

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           1997         193        1756          22          46        1752
Swap:          1423         756         666

ファイル作成

最初は、dd コマンドでファイル作成していたが、追加したswap領域を使い始めたとたんにフリーズする現象が発生していた。fallocateコマンドでファイル作成するようにしたところ、追加したswap領域を使ってもフリーズしなくなった。 ddコマンドとfallocateコマンドの違いを調べてみましたが、fallocateは即時に実領域を確保しないということらしいですが、詳細わかりません。

$ sudo fallocate -l 500M /var/swap.img
$ sudo mkswap /var/swap.img
$ sudo chmod 600 /var/swap.img

ループバックデバイスへの割り当て

$ sudo losetup -f /var/swap.img
$ sudo losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE     DIO
/dev/loop0         0      0         0  0 /var/swap.img   0

swap 開始

$ sudo swapon /dev/loop0

確認

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           1997         194        1241         536         561        1236
Swap:          1935         754        1181

参考

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.