우리는 RHEL 7.4 서버에서 Jupyterlab과 RStudio라는 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-processes
nproc
max-processes = 800
https://docs.rstudio.com/ide/server-pro/r-sessions.html제5.2.5.2조에 따르면.