Windows 워크스테이션에서 작업하는 Java 개발자로서 제가 관찰한 바에 따르면 NTFS는 Linux 파일 시스템에 비해 느립니다. 질문은 NTFS 드라이버에 수동으로 조정할 수 있는 것이 있습니까? 예를 들어 캐시에 더 많은 메모리를 제공합니까? 일부 실험적인 알고리즘을 활성화하시겠습니까? 사용할 수 없는 경우 Windows에서 사용할 수 있는 NTFS보다 빠른 상용 파일 시스템이 있습니까?
분명히 말하면, 나는 Maven 프로젝트의 컴파일 속도를 향상시키려는 것이 아니라 OS의 전반적인 향상을 원합니다. NTFS는 Linux 파일 시스템에 비해 오래되고 느리다는 느낌이 듭니다. 지구상에서 가장 인기 있는 OS에 여전히 수동 조각 모음이 필요한 파일 시스템이 하나만 있다는 사실이 이상하다는 생각이 들었습니다. 어쩌면 거기~이다대안?
업데이트:내 관찰에 따르면 느린 것은 다음과 같습니다. 저는 프로젝트를 빌드/패키징하고 있는데, 이는 디스크에 대한 많은 읽기/쓰기 작업을 의미합니다. 빌드 시스템은 크로스 플랫폼(Java, Maven)이므로 예를 들어 Ubuntu로 부팅할 때 정확히 동일한 작업을 수행할 수 있습니다.
Linux에서는 내 빌드가 최소 1/3 더 빠릅니다. 따라서 파일 시스템에 대한 질문입니다. 위치가 잘못되었다면 죄송합니다.
답변1
Windows 호스트에서 ZFS와 같은 기능을 사용할 수 있기를 바라지만 NTFS는 끔찍한 파일 시스템이 아닙니다. 대부분의 "최신" 파일 시스템 기능(확장 속성, 저널링, ACL 등)을 지원하지만 Explorer 및 이러한 기능을 지원하지 않는 대부분의 다른 앱으로 인해 방해를 받습니다.
성능을 완전히 저하시키는 한 가지 요인은 디렉토리에 "너무 많은" 항목이 있다는 것입니다. 한 디렉터리에 몇 천 개의 항목을 전달하면 모든 것이 크롤링 속도로 느려집니다. 이런 일이 발생하면 문자 그대로 전체 시스템이 NTFS가 항목을 생성하거나 제거할 때까지 기다리는 것을 중단합니다.
저는 .NET 어셈블리용 HTML 기반 문서를 생성하는 앱을 사용하여 작업했습니다. 속성, 메서드, 클래스, 네임스페이스 등당 하나의 파일이 생성됩니다. 대규모 어셈블리의 경우 20+k개 파일이 모두 단일 디렉터리에 깔끔하게 덤프됩니다. NTFS에서 빌드가 차단되는 동안 머신은 몇 시간을 소비합니다.
이론적으로 Windows는 파일 시스템 플러그인을 지원하므로 기본 ZFS, ext3 또는 FUSE까지 가능한 모든 기능을 사용할 수 있습니다. 실제로 API는 문서화되어 있지 않으므로 전적으로 사용자 자신입니다.
이제 Java 개발을 하고 있으므로 컴퓨터에 다른 OS를 설치하거나 Windows 위에 VM을 사용할 수 있습니까?
또한, 플랫폼 독립적인 파일 시스템 벤치마크(iozone, bonnie... 내 머리로는 모르는 더 현대적인 벤치마크가 있을 수도 있고 Java로 작성된 몇 가지 벤치마크도 있을 수 있음)를 시도해 볼 수도 있습니다. 실제로 당신을 방해하는 파일 시스템이거나 다른 것입니다. 성급한 최적화와 그 모든 것...
답변2
- 마지막 액세스 시간 끄기
- 짧은 파일 이름 끄기
- 삭제 알림 끄기
- 인덱싱 끄기
- 저널링 비활성화
- 섀도 복사본과 이전 버전, 할당량 및 공유를 비활성화합니다.
- 우회 트래버스 확인 활성화
실제 해결책은 이식성 프레임워크 아래에서 Unix API(fopen 등) 자체 대신 기본 Windows 파일 시스템 API를 사용하도록 빌드 시스템을 다시 작성하는 것입니다. 그러나 그런 일은 일어나지 않을 것이므로 기본적으로 그들이 수용할 수 있다고 생각하는 성능 수준에 갇혀 있게 됩니다.
원래 Windows용으로 작성되지 않은 시스템을 사용할 때 디렉토리 탐색이 매우 제대로 처리되지 않은 경우가 종종 있으므로 매우 평평한 디렉토리 트리를 가지고 있는지 확인하십시오.
답변3
새로운 Windows OS에서 지원되고 NTFS보다 빠른 파일 시스템이 하나 있습니다. exFAT 입니다. 시스템 드라이브에 사용할 가능성이 있습니다. 그러나 어떤 합병증이 발생할 수 있는지는 알려져 있지 않습니다.
하지만 다른 파티션에도 확실히 사용할 수 있습니다. 임의 읽기/쓰기 작업을 사용하면 더 빠릅니다. 예를 들어 SSD에 적합합니다.
답변4
역사적 참고 사항:WinFS, Windows가 파일 내용을 보다 효율적으로 작업할 수 있도록 NTFS 위에 보다 구조화된 레이어를 추가했습니다.
NTFS의 "진정한" 후속 제품은ReFS. 그 초점은 탄력성입니다. Windows 10 Enterprise 및 Windows Pro for Workstations에서만 사용할 수 있습니다. 좋은 독서는NTFS와 ReFS – 사용할 항목을 결정하는 방법.