
저는 Plesk 9(64비트)와 함께 CentOS 5를 사용하고 있으며 사용자들이 사진을 업로드할 사이트를 운영하고 있습니다. 64비트 OS를 사용하면 저장할 수 있는 파일 수에 제한이 있나요? 내가 관심을 갖는 것은 성능과 파일 제공뿐입니다. 나는 4개의 디렉터리 깊이에 흩어져 있는 파일을 갖고 싶지 않습니다. 그러나 어느 시점에는 200,000~300,000개의 이미지를 가질 수 있기를 바라고 있습니다.
답변1
당신이있는 경우ext3 사용, 내가 찾았어이 인용문(경고: 스페인어를 구사하는 사이트)
"단일 디렉토리에는 32,000개(32768)개의 하위 디렉토리가 제한되어 있습니다. 많은 사람들이 파일을 많이 가지고 있지 않기 때문에 학문적 관심에만 국한된 제한일 수 있습니다(대규모 메일 서버에서는 이를 염두에 두어야 할 수도 있음). ext2 inode 사양을 사용하면 100조 개가 넘는 파일을 단일 디렉터리에 저장할 수 있습니다."
추가 읽기ext3을 보여줬어그렇지 않다경험적으로 증명할 수 있는 32K 제한이 있습니다.
a=0; i=1; while [ $a == 0 ]; do touch $i; a=$?; let i++; done
하지만 그것은가지고 있다테스트할 수 있는 폴더의 폴더 제한은 32K입니다.
a=0; i=1; while [ $a == 0 ]; do mkdir $i; a=$?; let i++; done
이 (근거 없는) 주장말한다
ReiserFS는 단일 디렉토리에 수십만 개의 파일이 있어도 전혀 문제가 없습니다. flabdablet - 2007년 2월 1일
이 질문자매 사이트 stackoverflow.com에서도 도움이 될 수 있습니다.
일반적으로:
- 거기~이다디렉토리의 양에 대한 제한,
- 너~해야 한다파일/디렉토리를 32K 미만으로 유지하되~할 수 있다훨씬 더 멀리 가서,
- 사용하는 파일 시스템이 중요합니다.
답변2
이는 사용하는 파일 시스템에 따라 크게 달라집니다. ext3의 특정 이전 버전은 이 문제가 심각했고, 이것이 btree가 탄생한 방식입니다. Reiser는 이와 같은 파일 수가 많을 때 훨씬 더 성능이 좋습니다. 예전에는 GroupWise 문제로 인해 NetWare 서버에 250,000개의 4kb 파일이 있는 Novell NSS 디렉터리가 있었는데 제대로 작동했습니다. 디렉토리를 열거하는 것은 많은 시간이 걸렸지만 해당 디렉토리의 특정 파일에 액세스하는 것은 원하는 만큼 빠르게 작동했습니다. 8년 전 일이므로 현대 Linux 파일 시스템이 이를 능숙하게 처리할 수 있다고 가정해야 합니다.
답변3
운영 체제의 64비트가 아니라 사용 중인 파일 시스템에 따라 다릅니다. 모든 파일 시스템에는 디렉토리를 검색하는 데 사용되는 알고리즘의 big-O 비용이 컴퓨터를 더 좋게 만드는 어느 시점이 있을 것입니다.
파일 계층 구조를 2개 계층 계층 구조로 나눌 수 있다면 장기적으로 더 나은 확장성을 얻을 수 있습니다.
답변4
수백 개의 이미지를 넘어서는 경우 반드시 다음 두 가지를 고려하십시오.
- 해시된 파일 이름이 포함된 중첩 계층
- ext3을 사용하지 않음
나는 XFS를 사용하거나, 실패할 경우 2바이트 쌍으로 나누어진 2~3개 깊이의 디렉터리 계층 구조를 갖춘 ReiserFS를 사용하는 것을 권장합니다. 예를 들어
11/2f/112f667c786eac323e300632b5b2a78d.jpg
49/2f/49ef6eb6169cc57d95218c842d3dee5c.jpg
0a/26/0a26f9f363f1d05b94ceb14ff5f27284.jpg
이렇게 하면 처음 몇 레벨에 256개의 디렉터리가 제공되며 이미지는 총 65,535개의 개별 디렉터리로 분할됩니다(이는 100-200,000개 이상의 이미지에 충분합니다). 이를 통해 작업이 훨씬 더 빠르고 확장 가능해지며 나중에 유지 관리도 훨씬 쉬워집니다.