컴퓨터에 Intel MPI Benchmark를 설치하려고했는데이 오류가 발생했습니다.
fork: retry: Resource temporarily unavailable
그런 다음 실행 ls
하여 top
명령 할 때이 오류를 다시 받았습니다 .
이 오류의 원인은 무엇입니까?
내 컴퓨터의 구성 :
Dell precision T7500
Scientific Linux release 6.2 (Carbon)
컴퓨터에 Intel MPI Benchmark를 설치하려고했는데이 오류가 발생했습니다.
fork: retry: Resource temporarily unavailable
그런 다음 실행 ls
하여 top
명령 할 때이 오류를 다시 받았습니다 .
이 오류의 원인은 무엇입니까?
내 컴퓨터의 구성 :
Dell precision T7500
Scientific Linux release 6.2 (Carbon)
답변:
이는 일반적으로 파일 설명자가 부족하여 발생합니다.
시스템의 총 파일 디스크립터 제한이 있습니다. 명령에서 무엇을 얻습니까?
sysctl fs.file-nr
파일 설명 자의 수를 반환합니다.
<in_use> <unused_but_allocated> <maximum>
사용자 파일 설명자 제한이 무엇인지 알아 보려면 다음 명령을 실행하십시오.
sudo su - <username>
ulimit -Hn
사용자가 사용중인 파일 설명자 수를 확인하려면 다음 명령을 실행하십시오.
sudo lsof -u <username> 2>/dev/null | wc -l
따라서 이제 시스템 파일 설명자 제한 문제가있는 경우 /etc/sysctl.conf 파일을 편집하고 이미 존재하는 파일을 추가하거나 수정해야합니다. fs.file-max가있는 줄을 큰 값으로 설정합니다. 필요한 파일 설명자 수를 처리하고 재부팅하기에 충분합니다.
fs.file-max = 204708
또 다른 가능성은 너무 많은 스레드입니다. 스레드 풀을 사용하는 앱에 대해 테스트 하네스를 실행할 때이 오류 메시지가 나타납니다. 우리는 사용했었다
watch -n 5 -d "ps -eL <java_pid> | wc -l"
주어진 Java 프로세스 ID 내에서 실행중인 Linux 원시 스레드의 지속적인 수를 확인합니다. 약 1,000 회 (YMMV)를 기록한 후 언급 한 오류 메시지를 받기 시작했습니다.
ps -eL
모든 프로세스 ps -L <pid>
를 표시하고 <pid>
. ps -eL <pid>
에 관계없이 모든 프로세스를 표시합니다 <pid>
.