더 이상 아무것도 실행할 수 없으며(거의 아무것도) 다음과 같은 오류 메시지가 계속 나타납니다. 명령을 실행하면 여러 번 오류가 발생할 수 있습니다.포크: 재시도: 하위 프로세스 없음, 몇 번 테스트해 보면 가끔 작동하는 경우가 있습니다.
-bash: 포크: 재시도: 하위 프로세스 없음
-bash: 포크: 리소스를 일시적으로 사용할 수 없음
오류 메시지 예시:
[user@server ~]$ sudo -i
sudo: unable to fork: Resource temporarily unavailable
[user@server ~]$ sudo -i
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: Resource temporarily unavailable
-bash-4.2#
-bash-4.2# logout
[user@server ~]$ sudo -i
[root@server ~]#
[root@server ~]# ps -e --no-headers | wc -l
-bash: fork: retry: No child processes
-bash: fork: retry: Resource temporarily unavailable
86
[root@server ~]# man ulimit
man: fork failed: Resource temporarily unavailable
[root@server ~]# ps -eLF
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: Resource temporarily unavailable
내가 조사할 수 있는 것은 프로세스 제한에 도달했기 때문에 새 프로세스를 만들 수 없다는 것뿐입니다. 내 서버에는 100개 미만의 프로세스와 350개 미만의 스레드가 영구적으로 실행되고 있습니다.
[root@server ~]# ps -e --no-headers | wc -l
86
데이터 출처 htop
:
Tasks: 86, 311 thr; 1 running
Load average: 0.04 0.17 0.16
지금까지는 한계가 충분히 높아 보입니다.
[root@server ~]# prlimit
RESOURCE DESCRIPTION SOFT HARD UNITS
AS address space limit unlimited unlimited bytes
CORE max core file size 0 unlimited blocks
CPU CPU time unlimited unlimited seconds
DATA max data size unlimited unlimited bytes
FSIZE max file size unlimited unlimited blocks
LOCKS max number of file locks held unlimited unlimited
MEMLOCK max locked-in-memory address space 67108864 67108864 bytes
MSGQUEUE max bytes in POSIX mqueues 819200 819200 bytes
NICE max nice prio allowed to raise 0 0
NOFILE max number of open files 1024 4096
NPROC max number of processes 62987 62987
RSS max resident set size unlimited unlimited pages
RTPRIO max real-time priority 0 0
RTTIME timeout for real-time tasks unlimited unlimited microsecs
SIGPENDING max number of pending signals 1029347 1029347
STACK max stack size 8388608 unlimited bytes
[root@server ~]# 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) 1029347
max locked memory (kbytes, -l) 65536
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 62987
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[root@server ~]# ulimit -aH
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 1029347
max locked memory (kbytes, -l) 65536
max memory size (kbytes, -m) unlimited
open files (-n) 4096
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 62987
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
또 무엇을 확인할 수 있나요?
즉, 이러한 부적절한 행동의 이유는 무엇입니까?
서버는 임대된 vServer(VPS)이며 공급자의 Virtuozzo 환경에 있는 컨테이너입니다.
서버는 CentOS 7.9를 실행하고 있으며 Plesk가 설치되어 있으므로 웹 서버(httpd), 메일 서버(Postfix, Dovecot)를 실행하고 있습니다.
Virtuozzo 환경에 문제가 있는 건가요? 그렇다면 이를 효율적으로 판단하여 공급자에게 연락할 수 있는 방법이 있습니까?