Linux

ulimit - 一項服務影響另一項服務

  • August 14, 2019

我們在 RHEL 7.4 伺服器上託管 2 項服務:Jupyterlab 和 RStudio。個人使用者的 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

但問題並沒有消失。我應該查看任何其他每個使用者的限制嗎?

事實證明,這是一個與 RStudio 相關的問題。下/etc/rstudio/profiles我們需要增加參數max-processes(相當於nproc)。我們將每個使用者的程序限制為 120 個,以限制大量並行化。儘管遭受此問題的使用者在作業系統級別只有幾個正在執行的程序,但事實證明數量很少,將值增加到 後max-processes = 800,問題就消失了。此處記錄了更多資訊:https : //docs.rstudio.com/ide/server-pro/r-sessions.html 在第 5.2.5.2 條下。

引用自:https://unix.stackexchange.com/questions/534702