メモリの監視とインスタンスの決定

AWSやAzureに移行したい。
そんな時、インスタンスのスペックを決定する必要がある。
インスタンスのスペックを決定するには、

  • メモリサイズ
  • CPU数
  • ストレージサイズ

の3つがわかればよい。 以下のようなスクリプトを使えば、実行しているプロセスに関するpsコマンドの出力を経時的に取得することができます。

例えば、script.RというRスクリプトを実行している場合、以下のように使用します。

check_process.sh script.R script_log.txt

output.logには、以下のようにプロセスを監視した結果が経時的に出力されます。

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
kimoton  24602 98.5  2.2 590520 381136 pts/3   R    15:11   0:07 /usr/lib/R/bin/exec
/R --slave --no-restore --file=test_seurat.R
kimoton  24602 98.7  4.7 970548 781588 pts/3   R    15:11   0:17 /usr/lib/R/bin/exec
/R --slave --no-restore --file=test_seurat.R
kimoton  24602 99.2  6.2 1216564 1030212 pts/3 R    15:11   0:27 /usr/lib/R/bin/exec
/R --slave --no-restore --file=test_seurat.R

スクリプトの実行が終わったら、出力されたファイルを見てみましょう。 この結果中の最大値から、

  • メモリサイズ
  • CPU数

を決定しましょう。

ストレージの容量については、入力ファイル、出力ファイルのサイズから、検討すればよいかと。