많은 작은 파일 (SSD가 아닌 HDD)을 저장하기위한 가장 고성능 Linux 파일 시스템은 무엇입니까? 비율의 파일이

많은 작은 파일과 적은 수의 큰 파일을 포함하는 디렉토리 트리가 있습니다. 파일의 평균 크기는 약 1 킬로바이트입니다. 트리에는 210158 개의 파일과 디렉토리가 있습니다 (이 번호는을 (를 find | wc -l) 실행하여 얻은 것입니다 ).

적은 비율의 파일이 일주일에 여러 번 추가 / 삭제 / 재 작성됩니다. 이는 작은 파일뿐만 아니라 (작은 수의) 큰 파일에도 적용됩니다.

내가 시도한 파일 시스템 (ext4, btrfs)에는 파일을 디스크에 배치하는 데 문제가 있습니다. 더 긴 시간 동안 디스크에서 파일의 물리적 위치 (솔리드 스테이트 디스크가 아닌 회전 미디어)가 더욱 무작위로 분배됩니다. 이 무작위 배포의 부정적인 결과는 파일 시스템이 느려지는 것입니다 (예 : 새로운 파일 시스템보다 4 배 느림).

이 성능 저하를 겪지 않고 회전하는 미디어에서 안정적인 성능 프로파일을 유지할 수있는 Linux 파일 시스템 (또는 파일 시스템 유지 관리 방법)이 있습니까? 파일 시스템은 퓨즈에서 실행될 수 있지만 신뢰할 수 있어야합니다.



답변

공연

나는 작은 벤치 마크 ( source )를 작성하여 수십만 개의 작은 파일로 어떤 파일 시스템이 가장 잘 작동하는지 알아 냈습니다.

  • / dev / urandom의 데이터로 300000 개의 파일 (512B ~ 1536B)을 만듭니다.
  • 30000 개의 임의의 파일을 다시 작성하고 크기를 변경하십시오
  • 30000 순차 파일 읽기
  • 30000 개의 임의 파일 읽기
  • 모든 파일을 삭제

  • 모든 단계 후에 캐시 동기화 및 삭제

결과 (평균 시간 (초), 낮을수록 좋음) :

Using Linux Kernel version 3.1.7
Btrfs:
    create:    53 s
    rewrite:    6 s
    read sq:    4 s
    read rn:  312 s
    delete:   373 s

ext4:
    create:    46 s
    rewrite:   18 s
    read sq:   29 s
    read rn:  272 s
    delete:    12 s

ReiserFS:
    create:    62 s
    rewrite:  321 s
    read sq:    6 s
    read rn:  246 s
    delete:    41 s

XFS:
    create:    68 s
    rewrite:  430 s
    read sq:   37 s
    read rn:  367 s
    delete:    36 s

결과 :
Ext4의 전반적인 성능은 우수했지만 ReiserFS는 순차 파일을 읽는 데 매우 빠릅니다. 많은 작은 파일로 인해 XFS가 느리다는 것이 밝혀졌습니다 .이 사용 사례에는 사용하지 않아야합니다.

조각화 문제

파일 시스템이 드라이브를 통해 파일을 배포하지 못하게하는 유일한 방법은 파티션을 실제로 필요한만큼만 유지하는 것이지만 파티션을 너무 작게 만들지 않도록주의하여 파일 내부 조각화를 방지하십시오. LVM 을 사용하면 매우 도움이 될 수 있습니다.

추가 자료

아치 위키에는 파일 시스템 성능에 관한 훌륭한 기사가 있습니다.

https://wiki.archlinux.org/index.php/Beginner%27s_Guide#Filesystem_types

https://wiki.archlinux.org/index.php/Maximizing_Performance#Storage_devices


답변

이 작업에 ReiserFS를 사용하고 있습니다. 특히 많은 작은 파일을 처리하기 위해 만들어졌습니다. funtoo wiki 에는 쉽게 읽을 수있는 텍스트가 있습니다 .

ReiserFS에는 또한 작은 파일 성능을 향상시키기위한 다양한 기능이 있습니다. ext2와 달리 ReiserFS는 고정 1k 또는 4k 블록으로 저장 공간을 할당하지 않습니다. 대신 필요한 정확한 크기를 할당 할 수 있습니다.


답변

ext4 성능은 디렉토리에 1-2 백만 개의 파일이 있으면 떨어집니다. UCSC의 Hiram Clawson 이 작성한 http://genomewiki.ucsc.edu/index.php/File_system_performance 이 페이지를 참조 하십시오.


답변

XFS는 이와 같은 상황에서 성능이 우수합니다. 이것이 메일 저장소 (하나의 디렉토리에 수십만 개의 파일을 포함 할 수 있음)를 위해 직장에서 사용하는 이유의 일부입니다. ReiserFS보다 내결함성이 우수하고 훨씬 더 광범위하게 사용되며 일반적으로 매우 성숙한 파일 시스템입니다.

또한 XFS는 온라인 조각 모음을 지원합니다. 비록 지연된 할당 기술을 사용하지만, 다른 파일 시스템과 비교할 때 조각화가 덜 발생합니다.