
exFAT 성능 향상: 10년의 혁신
2012년, Microsoft는 64비트 버전의 Extended File Allocation Table(exFAT)을 출시했는데, 이는 기존 32비트 FAT32 파일 시스템을 현대적으로 대체하는 역할을 했습니다.이 회사는 2019년에 Linux 플랫폼에서 exFAT 형식에 대한 기본 지원을 발표하여 파일 시스템 상호 운용성 진화의 핵심 순간을 기념하면서 한 단계 더 나아갔습니다.
최근의 발전은 특히 소니 엔지니어 Yuezhang Mo의 기여 덕분에 나타났습니다.2022년 Mo는 디렉토리 항목 트래버설을 최적화하면 exFAT 성능을 57%까지 인상 깊게 향상시킬 수 있다는 것을 발견했습니다.이 중요한 개선 사항은 Linux 커널 버전 6.2에 통합되어 파일 시스템 기술의 지속적인 발전을 보여주었습니다.
exFAT 최적화의 최신 개발 사항
Mo는 exFAT 파일 시스템을 개선하기 위한 최근 풀 요청에서 추가 개선 사항을 가지고 돌아왔습니다.제안된 변경 사항에는 성능을 향상시킬 뿐만 아니라 기존 문제를 해결하는 몇 가지 주요 개선 사항이 포함됩니다.이 최신 제출에 포함된 개선 사항의 요약은 다음과 같습니다.
이 풀 리퀘스트에 대한 설명:
- .에서 무작위 스택 손상과 오류 수정을 처리합니다
exfat_get_block()
.exfat_get_block()
예외적인 상황을 최적화하여 개선합니다.- .에서 자체 연결 체인과 관련된 무한 루프 문제를 해결합니다
exfat_find_last_cluster
.- 더 이상 사용되지 않는 코드를 제거하세요
EXFAT_CLUSTERS_UNTRACKED
.- 시스템 종료 중 필수적인 점검 사항을 추가합니다.
- discard 마운트 옵션을 사용하면 삭제 성능이 향상됩니다.
“discard mount” 옵션은 성능 개선에 중요한 역할을 합니다.파일 시스템이 스토리지 장치와 통신하여 더 이상 필요하지 않은 블록을 표시할 수 있습니다.이 실시간 알림을 통해 여유 공간을 효율적으로 관리하여 운영을 간소화하고 전체 파일 시스템 효율성을 향상시키는 데 도움이 됩니다.
패치는 다음 사항을 명확히 합니다.
discard mount 옵션이 활성화된 경우 해제된 클러스터는 즉시 삭제됩니다.클러스터를 하나씩 처리하면 성능이 저하되어 많은 수의 클러스터가 해제될 때 잠재적인 소프트 잠금이 발생할 수 있습니다.이 업데이트는 연속된 클러스터의 discard 작업을 일괄 처리하여 성능을 향상시킵니다.
성과 지표: 극적인 개선
이러한 개선 사항으로 인한 성능 향상은 놀랍습니다.테스트에는 상당한 80GB 파일이 포함되었으며, 이전에는 삭제하는 데 약 4분 46초가 걸렸습니다.새로운 최적화를 구현한 후 삭제 시간이 2초 미만으로 급감하여 172배라는 놀라운 성능 향상을 달성했습니다.
성능 측정 결과:
#
truncate -s 80G /mnt/file
#
time rm /mnt/file
이 커밋 없이:
- 실제 4m46.183s
- 사용자 0m0.000s
- 시스템 0m12.863s
이 커밋을 통해:
- 실제 0m1.661s
- 사용자 0m0.000s
- 시스템 0m0.017s
이 풀 리퀘스트에 대한 자세한 내용은 Linux 커널 메일링 목록(LKML) 에서 확인할 수 있습니다.
이러한 성능 향상에 대한 추가적인 정보를 얻으려면 출처 기사를 방문하세요 .
답글 남기기