최대 열린 파일 설명자(프로세스 제한)의 하드코드된 상한은 1048576인 것 같습니다. 이것이 맞습니까?
최근에 변경된 경우 내 버전은 다음과 같습니다.
Linux mq981 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 13:41:29 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
답변1
당신이 말한 것처럼 하드코딩된 것은 아닙니다. 시스템의 최대 개수는 다음과 같습니다.
cat /proc/sys/fs/file-max
나에게 이것은 3257198이 될 것이다. 모험을 즐기고 싶다면(즉시 커널 매개변수 변경, mmmmmm) 해당 숫자를 변경할 수 있습니다.
long
절대 최대값은 이것이 C의 정수라 는 사실에 의해 제공되므로 최대값은 2147483647입니다.
프로세스별로 최대값은 다음과 같습니다.
cat /proc/sys/fs/nr_open
(내 시스템에서는 1048576이기도 합니다.)
기술적으로 이는 unsigned long입니다( fs.h
에서 검색 참조). 그러나 프로세스당 열린 파일 수는 시스템 전체 최대값보다 낮아야 하므로 2147483647보다 낮거나 사용자 값보다 낮아야 합니다.unsigned long max_files;
struct files_stat_struct
cat /proc/sys/fs/file-max