max_files_per_process
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | one thousand files | postmaster (재시작) | integer |
| 15 | one thousand files | postmaster (재시작) | integer |
| 16 | one thousand files | postmaster (재시작) | integer |
| 17 | one thousand files | postmaster (재시작) | integer |
| 18 | one thousand files | postmaster (재시작) | integer |
| 19 | one thousand files | postmaster (재시작) | integer |
서버의 각 하위 프로세스가 동시에 열어둘 수 있는 파일 수의 상한을 정한다. 기본값은 1000개이며, postmaster가 이미 열어둔 파일은 이 한도에 포함되지 않는다. 서버 시작 시에만 설정할 수 있다.
커널이 프로세스당 open file 한도를 안전하게 강제하는 플랫폼이라면 이 설정을 신경 쓸 일이 거의 없다. 문제는 일부 플랫폼(특히 대부분의 BSD 계열)에서 개별 프로세스가 시스템이 실제로 감당할 수 있는 것보다 많은 파일을 열도록 허용한다는 점이다. 여러 프로세스가 한꺼번에 그만큼 파일을 열려고 하면 시스템 전체 한도를 넘어설 수 있다.
운영 노트: “Too many open files” 오류가 보인다면 이 값을 낮추는 것이 해법이다. 반대로 파티션이 많은 테이블을 다루는 환경에서는 프로세스당 열어야 하는 파일이 많아지므로, OS의 open file 한도(
ulimit -n, fs.file-max)와 함께 이 값을 점검할 필요가 있다.출처: PostgreSQL 18 문서