15

Linuxクラスター環境でRを実行しています。ユーザーがRプロセスを使用して誤ってすべてのメモリを取得した場合、ヘッドノードでいくつかのハングが発生しました。LinuxでRメモリの使用を制限する方法はありますか?グローバルなulimitを提案したくはありませんが、それが唯一の前進の方法かもしれません。

4

2 に答える 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 に答える