ulimit - あるサービスが別のサービスに影響します。

ulimit - あるサービスが別のサービスに影響します。

私たちはRHEL 7.4サーバーでJupyterlabとRSt​​udioという2つのサービスをホストしています。個々のユーザーのJupyterlabセッションは、多数のファイルを開く傾向があります。

# lsof|grep e613664|wc -l
31581

問題は、アクティブなJupyterlabセッション(したがって開いているファイルが多い)を持つユーザーがRStudioを使用できないことです。さまざまな「フォークできません」、「リソースが利用できません」というエラーが発生し、RStudioも使用できません。 Jupyterlabセッションを終了すると、RStudioが正常に動作し始めました。

最初は開いているファイルが多すぎて問題が発生したことがわかりました。ユーザーあたりのプロセス数は最大数十個です。そのため、ulimit -nの値をグローバルに65kに変更しました。現在のulimit設定:

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31136
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 16384
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

しかし、問題は消えませんでした。知っておくべき他のユーザー固有の制限はありますか?

ベストアンサー1

これはRStudio関連の問題であることがわかりました。次に、パラメータ(と同じ)/etc/rstudio/profilesを追加する必要があります。過度の並列化を制限するために、ユーザーあたりのプロセス数を120に制限します。この問題を経験したユーザーは、オペレーティングシステムレベルで実行されているプロセスがいくつかしかありませんでしたが、その数が少ないことがわかり、値を増やすと問題がなくなりました。ここにさらに多くの記録があります:max-processesnprocmax-processes = 800https://docs.rstudio.com/ide/server-pro/r-sessions.html第5.2.5.2条によると。

おすすめ記事