LoginSignup
3
2

More than 3 years have passed since last update.

しょぼいメモリ環境で Haskell stack build用にswap領域を増やす

Last updated at Posted at 2019-10-06

問題

GCE(Google Compute Engine)の f1-micro(vCPU x 1、メモリ 0.6 GB)無料インスタンスでメモリが足りず、Hello Worldすらstack buildできない。

Haskell は、ビルドするだけでもメモリが4GB必要らしい。 :yum:

解決策 A

  1. メモリを16GBくらいにする :weary:

解決策 B

  1. swap領域を作る
  2. swapをONにする
  3. ビルドする
  4. すごくすごく長い時間ビルドが終わるのを待つ :sob:
  5. ビルドが終わったら、OFFにする

swap領域用のファイルを作る

bash
sudo mkdir -v /var/cache/swap
cd /var/cache/swap

# このddコマンドは、すごく時間がかかる
sudo dd if=/dev/zero of=swapfile bs=1K count=4M

sudo chmod 600 swapfile
sudo mkswap swapfile

swapをONにする

bash
sudo swapon swapfile

swapの確認

bash
swapon -s

swapをOFFにする

bash
sudo swapoff swapfile

パクリスペクト元

おまけ

ddコマンドのオプション

オプション 意味
if=/dev/zero 入力ファイルを /dev/zero にする
of=swapfile 出力ファイルを swapfile に指定する
bs=1K ブロックサイズを 1KB にする
count=4M 回数を 4M回(400万回) にする

\0 で埋めた4GB(1KB * 4M)のファイルを作っているみたい。

その他

再起動後もswap領域を有効にしたい場合、 /etc/fstab をどうにかするらしい。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2