가능한 가장 빠른 방법으로 여러 파일 보관

가능한 가장 빠른 방법으로 여러 파일 보관

토렌트 다운로드 및 보관 시스템을 구현하고 있습니다. 여러 개의 작은 파일이 포함된 토렌트 파일을 다운로드한 다음 보관하고 싶습니다. 내 디스크 성능이 좋지 않습니다. 그래서 저는 파일을 효율적으로 보관하는 방법을 원합니다.

몇 가지 옵션이 있습니다.

1.일반 디스크/파일 시스템에 파일을 다운로드한 다음 일반 Unix tar명령을 사용하여 TAR을 수행합니다.

2.빈 TAR 아카이브를 생성한 다음 이를 사용하여 쓰기 모드로 마운트한 archivemount다음 마운트된 경로에서 토렌트 다운로드를 시작합니다.

삼.옵션과 유사2하지만 tar 대신 ZIP 파일을 사용합니다.

4.웹 브라우저를 통해 파일을 전달하고 싶으므로 즉시 폴더를 TAR하는 소프트웨어/스크립트를 구현하십시오. (저는 이 작업을 수행하기 위해 몇 년 전에 Python 스크립트(uWsgi/Nginx)를 작성했습니다. 그러나 tar에는 각 파일에 대한 체크섬이 필요합니다. 성능이 매우 나빴습니다.)

5.TAR/Zip 파일에 직접 쓸 수 있는 토렌트 클라이언트를 찾으세요. (거의 가능성 없음)

어떤 방법을 고려해야 할까요?

감사합니다.

답변1

디스크가 실제로 병목 현상을 일으키는 경우 성능에 가장 적합한 값은 실제로 여전히 4일 가능성이 높습니다. 이렇게 하면 한 위치에서 다른 위치로 파일을 복사하는 데 귀중한 IOPS를 소비할 필요가 없습니다.

또한 옵션 4는 서버 다운로드가 완료되면 클라이언트가 토렌트를 즉시 다운로드할 수 있는 유일한 옵션입니다. 즉, 클라이언트가 실제로 데이터에 더 빨리 액세스할 수 있다는 의미입니다. 또한 이 방법을 사용하면 사용자가 개별 파일을 쉽게 다운로드하도록 허용할 수 있습니다(파일 시스템에 파일이 있기 때문에 아주 간단합니다).

tar가 왜 그렇게 낮은 성능을 제공하는지 조사하겠습니다. 내가 기억하는 한 데이터에 체크섬이 없기 때문에 문제가 된 것이 체크섬인지 정말 의심됩니다. 자신만의 tar 패커를 작성하는 대신 GNU tar의 출력을 웹 브라우저로 직접 파이프할 수 없는 이유가 있습니까?

한 가지 과제는 이 접근 방식을 사용하여 클라이언트에게 올바른 콘텐츠 길이를 제공하는 것입니다. 이에 대해 신경 쓰지 않는다면 이 전송을 생략할 수 있습니다. 그러면 클라이언트는 다운로드에 대한 백분율 카운터를 볼 수 없습니다. 이는 응용 프로그램에 따라 중요하지 않을 수도 있습니다.

관련 정보