Windows ReFS 개선에 따라 Linux에서 F2FS, Btrfs, EXT4 성능 향상

Windows ReFS 개선에 따라 Linux에서 F2FS, Btrfs, EXT4 성능 향상

Microsoft는 최근 Windows 11 Insider 빌드에서 ReFS(Resilient File System)에 대한 지원을 점진적으로 확장해 왔습니다. 1월에 처음 발견된 Dev 빌드 25281 내부의 숨겨진 기능을 통해 사용자는 ReFS 볼륨에 Windows 11을 설치할 수 있습니다 . 이후 회사는 “Dev Drive”VHD 볼륨 과 같은 ReFS 기반 기능을 추가했습니다 . Microsoft는 또한 최근 Canary 채널 빌드 중 하나에서 기본 ReFS 버전을 3.10으로 업데이트했습니다.

Windows에서 ReFS의 사용이 증가하는 동안 Linux는 일부 파일 시스템에서도 꾸준히 발전하고 있습니다. 최신 Linux 커널 패치 중 일부에서 가장 인기 있는 Linux 파일 시스템인 F2FS(Flash-Friendly File System), B-Tree 파일 시스템(Btrfs) 및 4차 확장 파일 시스템(EXT4)의 성능이 크게 향상되었습니다. .

예를 들어 Btrfs는 SATA SSD에서 약 10%의 성능 향상을 얻고 있습니다. 아마도 NVMe 드라이브의 개선은 더 높을 수 있습니다.

항상 64KiB 블록 크기로 읽기 읽기의 실제 블록 크기는 64KiB에서 시작하여 512K에서 끝납니다. 이는 최악의 경우에도 이미 더 나은 성능을 제공합니다.

  • 패치 세트 포함: 404.81MiB/s
  • 패치 세트 제외: 369.30MiB/s

SATA SSD에서 약 10%의 성능 향상.

EXT4로 이동하면 여러 가지 최적화가 이루어집니다.

이번 주기에 ext4에는 여러 가지 주요 정리 작업이 있습니다.

  • data=journal 쓰기 경로가 상당히 정리되고 단순화되었으며 Jan Kara가 작성한 많은 data=journal 특수 사례가 줄었습니다.
  • Ojaswin Muhoo는 다중 블록 할당자에서 inode 사전 할당에 사용된 범위를 추적하는 데 사용되는 연결 목록을 red-black 트리로 대체했습니다. 이렇게 하면 많은 수의 임의 할당 쓰기를 수행하는 워크로드의 성능이 향상됩니다.
  • 다중 블록 할당자의 많은 정리 및 버그 수정에 대해 Kemeng Shi에게 감사드립니다.
  • Matthew wilcox는 ext4 페이지를 읽고 쓰기 위한 코드 경로를 Folio를 사용하도록 변환했습니다. * Jason Yan은 ext4_fill_super()를 계속해서 유지 관리 및 이해의 용이성을 개선하기 위해 더 작은 함수로 분해했습니다.
  • Josh Triplett는 ext4 사용자 공간 API용 uapi 헤더를 만들었습니다.

마지막으로 F2FS의 개선 사항은 다음과 같습니다.

상승:

  • 존 장치에 대해 2의 거듭제곱이 아닌 존 크기 지원
  • 익스텐트 캐시에서 rb_entry 구조 공유 제거
  • f2fs_gc를 리팩터링하여 긴급 상황에서 체크포인트를 호출 – iiopoll 지원

전반적으로 Linux 커널 버전 6.4는 성능 면에서 꽤 괜찮을 것 같습니다.

출처: Phoronix를 통한 LKML (1) , (2) , (3)

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다