리눅스 한 폴더에 넣을수 있는 파일 갯수

김제연   
   조회 10702   추천 0    

뭔가 간단한거 하나 만들어보고 있는데 

이미지 서버가 필요해서 이미지 서버를 구성 하는데 .. 

예전에 어디서 줏어듣기로는.. 한 폴더에 파일이 많이 생성되면.. 

속도가 느려진다고 해서 .. 기존에 만들었던건 년도 날짜별로 폴더를 만들어서 저장했는데 

오늘 검색해보니까 .. 1폴더에 42억개 까지도 가능하다고 나오네요 EXT4

이론적인건지 .. 아니면 시스템들이 좋아지거나 파일 시스템이 업그레이드 되면서 .. 

그냥 신경 안쓰고 . 때려 박아도 될런지 .. 궁금합니다.. 

아니면 이전처럼 날짜별로 폴더를 만들어서 관리 하는게 좋을까요.

짧은글 일수록 신중하게.
아싸조쿠나 2021-09
나중에 찾기편함을 위해서라도 날짜별로 하는게 낫지 않나 싶네요
세벌쉭 2021-09
42억 수자보니....
2^32 = 4,294,967,296
인가봅니다.

8
16
32
64
128
1024
65,536
.
.
이십일억사천칠백~
사십이억구천사백~
이런 숫자 외웠던 기억이....
애월남 2021-09
2만개 이상이던가?  되면  ls 가 안먹힙니다..
     
김제연 2021-09
EXT4
최대 디스크 용량 : 256TB
파일 1개 최대 용량 : 16TB
디스크 최대 파일 개수 : 42억 개 (4,294,967,295)
한 폴더에 최대 파일(폴더) 개수 : 42억 개 (4,294,967,295)

이렇게 뜨는데 ls 가 안되나요? ㅜㅜ
그냥 날짜별로 폴더 만들어서 해야 겠네요..
엠브리오 2021-09
신경안써도 되는 파일시스템은 존재하지 않습니다.

한 디렉토리당 권장하는 파일 갯수는 대략 4천 ~ 5천개 정도입니다.

디스크냐 SSD냐에 따라 속도차이는 있지만, 그 이후 부터는 접근속도가 현저하게 느려지기 시작합니다.

검증해 보려면 디렉토리 몇개 만들어 놓고 썸네일 파일들을 디렉토리 하나당 천개 단위로 복사해 가면서 테스트 해보세요.
     
김제연 2021-09
하나 여쭤봐도 될까요 ..
제가 보는 사이트가 있는데 모든 이미지 파일이 주소가 한군데입니다..
www.test.com/image/블라블라.webp 이런식...
제가 구성하면
www.test.com/image/날짜hash/블라블라.webp
이런식으로 날짜 폴더도 생성해주고 복사해주고 등등 해야 해서
그냥 image 폴더에 하나로 몰아서 넣어서 사용할까 생각해봤습니다..

저 업체의 이미지는.. 대략.. 44만개의 게시물에 .. 한개시물당.. 이미지가 .. 7~8개씩 존재합니다..
리스트 줌 엑스트라줌 썸네일 해서 .. 7~8개의 이미지가 .. 4개씩 쪼개져있구요 ..

그럼 440000 * 28 = 12,320,000 최소 천이백 만개의 파일이거든요 ..

어떻게 구성한걸까요 ..
          
엠브리오 2021-09
??

웹페이지의 주소와 디스크의 파일위치가 항상 똑같은 이름으로 일치하리라는 가정은 "편견"일 뿐이죠.
웹페이지를 뜻하는 "하이퍼 링크"가 원래부터 다른걸 가리키는 용도 아니었던가요?

파일이 디스크상에 어디에 있든 웹페이지에서는 얼마든지 다른 이름으로 표현 가능합니다.
          
밥한끼 2021-09
rewrite module 사용된 것 같네요. 특정 패턴으로 접속되면 redirect  할건지 해당 내용만 불러올건지 세팅이 가능합니다. mod_rewrite 검색해 보세요.
               
김제연 2021-09
네 그건 알고 있습니다.. 파일명 보면 랜덤으로 uuid 비슷하게 되어있어서 큰 패턴이 없어 보여서 .. 그냥 한 폴더에
쟁여놓은거 아닌가 싶어서 .. 여쭤봤습니다.
화란 2021-09
루프문 돌려서 더미파일 와장창(?) 만든후에 ls 함 먹여보면 되겠네요^^

이론은 당연히 이런데,

하드웨어랑 파일시스템에 따라서 다르겠지만, 체감상 느려지는것은 팩트입니다.
양시열 2021-09
상대측이 최대한 나눈건데도 한 폴더에 일일 백만건이상 파일이 생기는 시스템을 경험해봤는데 비권장입니다;;;
초기설계에서 최소한 날짜별로 떨궈주면 좋은데 통으로 떨구니까 일부 시스템 잠깐 장애 발생해서(파일이 디스크 대 디스크로 들어옴) 조치과정에 일부 폴더채로 rm때렸는데 3일 걸렸습니다ㅠ
파일이 많으니까 해당 디렉토리에서 rm명령어가 안먹더라구요
     
엠브리오 2021-09
운영체제나 CPU에 상관없이 디스크 기반의 모든 파일시스템이 가지고 있는 한계입니다.

이걸 해소하려면 차세대 메모리인 M램이나 P램 같은게 나와서 디스크를 퇴출시켜야만 가능할겁니다.
CPU4 2021-09
파일이 많으면 목록 로딩만 한참 걸리더군요.
epowergate 2021-09
EXT4 (CentOS 7 기준)를 기준으로 말씀드리면
330,000 ~360,000개 까지는 성능 저하 없습니다. ls 등이 오래걸리는 이유는 그냥 많기 때문입니다.
380,000 정도가 넘어가면서 성능이 약간 떨어지는걸 느낄겁니다.
이유는 EXT4가 DIR Table에 대한 indexing을 다시하기 때문입니다.
이게 300만개 언저리에서 한번 더 발생합니다.
1800만개에서는 눈에띠게 성능이 떨어집니다. 1800만개부터는 완전히 가른 data structure로 inode table과 indexing table을 사용합니다.

EXT4의 SPEC이 REDHAT에 있는 EXT4의 SPEC과 가르고 UBUNTU에 있는 SPEC과 다릅니다.
EXT4를 build, format 하거나 mount option에 따라서 그 성격이 많이 달라집니다.
김제연 2021-09
답변 달아주신 분들 다들 정말 감사드립니다..


QnA
제목Page 698/5728
2014-05   5256806   정은준1
2015-12   1781751   백메가
2023-04   2647   이상훈LEE
2015-11   65180   판테라온주…
2016-11   4420   밤기차
03-26   488   불멸의샌디…
2014-08   5040   겨울나무
2012-12   5314   2CPU최주희
2012-12   6591   지니보이
2016-11   6183   일론머스크
2012-12   11430   뚜뚜김대원
2015-12   4554   바부팅이
2016-11   4450   파커스
2018-01   9514   민사장
2014-08   5042   조병철
2018-01   3843   김건우
2020-05   2514   미스테리우스
2021-10   2470   고양시
2023-05   3575   죠슈아
2023-05   2173   popokj
2014-08   4322   흑토
2018-01   4368   Doker