はじめに
今日、CryoSPARC で Non-uniform Refinement を実行していたところ、タスクが突然終了してしまった。調べてみると、メモリ不足によってシステムがプロセスを強制終了させた可能性があることがわかった。
メモリを増やす方法は2つある。1つはお金を払う方法、もう1つはスワップメモリを増やす方法だ。
ワークフローのほとんどのタスクはメモリをあまり必要としない。タスクログを見ても、少しメモリを増やせば解決できそうだった。そこで、まずスワップメモリの増量を試してみることにした。
詳しい手順
以下はすべて ChatGPT4 による回答で、動作確認済みの内容です。読みやすくするために一部変更しています。
- 現在のスワップファイルを無効にします。ターミナルを開いて、次のコマンドを実行します。
BASH
sudo swapoff -a
スワップファイルの作成・サイズ変更には
ddかfallocateコマンドを使います。fallocateのほうが高速ですが、対応していないファイルシステムもあります。fallocateを使ってスワップファイルを8GBにサイズ変更する例です。BASHsudo fallocate -l 8G /swapfileシステムが
fallocateに対応していない場合は、ddコマンドを使います。BASHsudo dd if=/dev/zero of=/swapfile bs=1G count=8 # `bs=1G` indicates that each time a 1GB is written,`count=8` indicates that 8GB total written。
スワップファイルのパーミッションを、root だけが読み書きできるように設定します。
BASH
sudo chmod 600 /swapfile
- ファイルをスワップ領域として設定します。
BASH
sudo mkswap /swapfile
- 新しいスワップファイルを有効にします。
BASH
sudo swapon /swapfile
- スワップ設定を永続化する
システム再起動後もスワップ設定を保持するには、/etc/fstab ファイルに設定を追加する必要があります。/etc/fstab を開いて、次の行を追加してください。
BASH
/swapfile swap swap defaults 0 0
こうすることで、システム起動のたびにスワップファイルが自動的に有効になります。
Note
/etc/fstab にはすでに /swapfile の設定が入っているようなので、最後の手順は省略してもよい。
おわりに
スワップメモリを2Gから8Gに増やしたところ、タスクは無事完了した。800CNY節約できた。いい一日だ。