본문으로 건너뛰기
max_files_per_process

max_files_per_process

버전기본값context타입
14one thousand filespostmaster (재시작)integer
15one thousand filespostmaster (재시작)integer
16one thousand filespostmaster (재시작)integer
17one thousand filespostmaster (재시작)integer
18one thousand filespostmaster (재시작)integer
19one thousand filespostmaster (재시작)integer

서버의 각 하위 프로세스가 동시에 열어둘 수 있는 파일 수의 상한을 정한다. 기본값은 1000개이며, postmaster가 이미 열어둔 파일은 이 한도에 포함되지 않는다. 서버 시작 시에만 설정할 수 있다.

커널이 프로세스당 open file 한도를 안전하게 강제하는 플랫폼이라면 이 설정을 신경 쓸 일이 거의 없다. 문제는 일부 플랫폼(특히 대부분의 BSD 계열)에서 개별 프로세스가 시스템이 실제로 감당할 수 있는 것보다 많은 파일을 열도록 허용한다는 점이다. 여러 프로세스가 한꺼번에 그만큼 파일을 열려고 하면 시스템 전체 한도를 넘어설 수 있다.

운영 노트: “Too many open files” 오류가 보인다면 이 값을 낮추는 것이 해법이다. 반대로 파티션이 많은 테이블을 다루는 환경에서는 프로세스당 열어야 하는 파일이 많아지므로, OS의 open file 한도(ulimit -n, fs.file-max)와 함께 이 값을 점검할 필요가 있다.

출처: PostgreSQL 18 문서