유닉스 폴더가 보유 할 수있는 최대 파일 수는 몇 개입니까?


20

유닉스 폴더가 보유 할 수있는 최대 파일 수는 몇 개입니까?

파일 수와 동일하다고 생각합니다.


3
더 좋은 질문은 : 몇 개를 사용해야합니까? stackoverflow.com/questions/466521/…
Joachim Sauer

1
내 사이트 URL이 site.com/username/처럼 보이기를 좋아하지만, 운이 좋으면 200 만 명 이상의 폴더를 가진 200 만 명 이상의 사용자를 얻는다고 생각합니다. modrewrite와 함께 PHP와 같은 스크립트를 사용하고 싶습니다 폴더에있는 다른 폴더의 가능성을보고있었습니다

1
자신에게 유리한 태도를 취하고 재 작성 체계로 하위 디렉토리를 만드십시오.
Peter Eisentraut

답변:



14

현재 모든 유닉스 파일 시스템에서 디렉토리는 사실상 무제한 의 파일을 보유 할 수 있습니다. "무제한"은 디스크 공간과 inode에 의해 제한됩니다 .

오래된 파일 시스템 디자인 ( ext2 , UFS , HFS + )을 사용하면 디렉토리에 많은 파일이 있으면 속도가 느려집니다. 일반적으로 약 10,000 개의 파일이 고통스럽기 시작합니다. 최신 파일 시스템 ( ReiserFS , XFS , ZFS , UFS2 )을 사용하면 일반적인 성능 병목 현상을 보지 않고도 디렉토리에 수백만 개의 파일을 가질 수 있습니다.

그러나 디렉토리에 너무 많은 파일이있는 것은 잘 테스트되지 않았으며 실패한 많은 도구가 있습니다. 예를 들어, 정기적 인 시스템 유지 보수 스크립트에 영향을 줄 수 있습니다.

나는 UFS2에서 수백만 개의 파일을 가진 디렉토리를 행복하게 사용했으며 디렉토리를 삭제하고 싶을 때까지 아무런 문제가 없었습니다.


12

파일 시스템으로 작성된 inode 수에 따라 다릅니다 . 실행

df -i 

무료 inode 수를 제공합니다. 이것은 파일 시스템과 디렉토리가 보유 할 수있는 파일 수의 실질적인 한계입니다.


1
그러나 많은 파일 시스템에는 사용 가능한 inode 수에 관계없이 디렉토리 당 파일 수가 제한되어 있습니다.

1
예, 그러나이 질문은 UNIX 파일 시스템을 대상으로하며 모든 최신 UNIX 파일 시스템이 디렉토리의 파일 수를 제한하지 않는다는 것을 알고 있습니다.

6

한 장소에 많은 파일을 저장하려고 생각한다고 가정합니까?

대부분의 최신 Unix 파일 시스템은 하나의 디렉토리에 많은 파일을 넣을 수 있지만 다음 경로, 파일 나열 등과 같은 작업은 파일 목록을 통해 선형 검색을 수행하며 목록이 너무 커지면 속도가 느려집니다.

나는 2 만명이 가장 실용적으로 사용하기에는 너무 많다는 말을 기억하는 것 같습니다. 일반적으로 해결책은 그룹을 나누는 것입니다. 그건,

/some/path/to/dir/a/
/some/path/to/dir/b/
...
/some/path/to/dir/z/

파일의 해시에 따라 적절한 하위 디렉토리에 파일을 저장하십시오 basename. 편리한 해시를 선택하십시오. 첫 번째 문자는 간단한 경우에 할 수 있습니다.


크리스티안 시우 투투 (Cristian Ciupitu)는 XFS 와 다른 아주 새로운 파일 시스템 log(N)은 디렉토리 구조를 유지하기 위해 검색 가능한 구조를 사용 하므로 이러한 제약이 크게 개선 된다는 의견을 썼다 .


5
XFS와 같은 일부 최신 파일 시스템에는 선형 검색이 필요하지 않습니다. XFS의 B-Tree 기술을 사용하면 정교한 색인 ( uoks.uj.edu.pl/resources/flugor/IRIX/xfs-whitepaper.html )을 사용하여 파일 위치를 포함하는 블록 및 / 또는 범위로 직접 이동할 수 있습니다 .
Cristian Ciupitu

아! 나는 몰랐다. 감사. 텍스트에 추가합니다.
dmckee

1
ext3의 경우 "dir_index"기능을 활성화해야합니다 (cf. tune2fs (8).

0

ext3디렉토리에 약 20k + 파일이 있으면 가장 일반적인 Linux 파일 시스템 형식 중 하나가 실제로 느려집니다. 보유 할 수있는 수에 관계없이 한 디렉토리에 많은 수의 파일이 없도록해야합니다.


0

남겨둔 의견에서 FS가 호스트 할 수있는 파일 / 폴더 수에 대해서는 신경 쓰지 않는다고 생각합니다.

아마도 ModRewrite를 사용하고 site.com/username을 site.com/?user=에 다시 쓰는 것을 고려하고 모든 종류의 데이터를 데이터베이스에 저장해야합니다. 사용자 당 하나의 폴더를 만드는 것은 일반적으로 필요하지 않으며 좋은 아이디어는 아닙니다.

즉, 각 파일 시스템에는 한계가 있으며 시스템의 df각 파티션에서 사용 가능한 inode 수를 알려줄 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.