Linuxクラスター環境でRを実行しています。ユーザーがRプロセスを使用して誤ってすべてのメモリを取得した場合、ヘッドノードでいくつかのハングが発生しました。LinuxでRメモリの使用を制限する方法はありますか?グローバルなulimitを提案したくはありませんが、それが唯一の前進の方法かもしれません。
質問する
19732 次
2 に答える
13
シェルでも使用されているのと同じメカニズムunix::rlimit_as()
を使用して、実行中のRプロセスのメモリ制限を設定できるようにする機能があります。WindowsとmacOSはサポートされていません。ulimit
私の.Rprofile
中に
unix::rlimit_as(1e12, 1e12)
メモリ使用量を最大12GBに制限します。
それ以前は...
ulimit
同様の機能を備えた小さなRパッケージを作成しました。
を使用してGitHubからインストールします
devtools::install_github("krlmlr/ulimit")
Rで使用可能なメモリを2000MiBに制限するには、次の呼び出しを行います。
ulimit::memory_limit(2000)
今:
> rep(0L, 1e9)
Error: cannot allocate vector of size 3.7 Gb
于 2014-06-29T10:44:44.400 に答える
8
?"Memory-limits"
ulimit
またはを使用することをお勧めしlimit
ます。
コマンドラインフラグがあります:--max-mem-size
これは初期制限を設定できます。これは、セッション中にユーザーがを使用して増やすことができますmemory.limit
。
于 2012-09-25T12:53:29.310 に答える