![단일 파일 복사 속도가 느려지는 이유는 무엇입니까?](https://linux55.com/image/185196/%EB%8B%A8%EC%9D%BC%20%ED%8C%8C%EC%9D%BC%20%EB%B3%B5%EC%82%AC%20%EC%86%8D%EB%8F%84%EA%B0%80%20%EB%8A%90%EB%A0%A4%EC%A7%80%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
2GB 파일을 HDD에서 USB 플래시 드라이브로 복사할 때 초기 속도는 약 80MB/초이며 이후 꾸준히 10MB/초 이하로 떨어집니다.
왜 그럴까요? 내가 찾은 답변은 캐싱과 관련이 있다고 말했습니다. 하지만 파일이 한 번만 복사된다면 캐싱이 파일과 무슨 관련이 있을까요? 캐싱은 여러 번 복사되는 정보에 대한 것이라고 생각합니다.
차이점이 있다면 Debian/Gnome에서 Nautilus를 사용하고 있습니다.
편집 - 일부 벤치마크 추가
2.4GB mp4 파일을 복사하기 전에 파일을 읽고 디스크 캐시에 넣는 데 걸리는 시간을 확인하기 위해 반복적으로 체크섬을 실행했습니다.
sha512sum file.mp4 (3x)
19s
8s
6s
sha256sum file.mp4 (3x)
10s
10s
10s
sha512sum file.mp4 (3x)
6s
6s
6s
파일이 캐시된 것 같습니다.
다음으로 USB 스틱에 복사했습니다. Debian 10의 기본 설치는 비동기식입니다. 분당 복사 수, 남은 시간 및 전체 속도는 다음과 같습니다.
few sec 985 MB 13sec left 116 MB/s
1min 1.1 GB 1 min left 18.6 MB/s
2min 1.4 GB 1 min left 11.7 MB/s
3min 1.7 GB 1 min left 9.7 MB/s
4min 2.1 GB 35sec left 8.7 MB/s
4min45 "done"
eject
(it doesn't inform how long it will take)
+2min22 "ejecting" = ~7min total
2403758161÷427 = 5629410.2 = 5.63 MB/s = 5.37 MiB/s
그런 다음 옵션을 사용하여 USB 스틱을 마운트 -sync
하고 매분 동일한 정보를 등록했습니다.
few sec 20min left 2 MB/s
30s 9 min left 3.9 MB/s
1min 272 MB 7 min left 4.5 MB/s
2min 500 MB 7 min left 4.2 MB/s
3min 744 MB 6 min left 4.1 MB/s
4min 1.1 GB 5 min left 4.4 MB/s
5min 1.4 GB 3 min left 4.6 MB/s
6min 1.7 GB 2 min left 4.6 MB/s
7min 2.0 GB 1 min left 4.6 MB/s
8min 2.3 GB 36sec left 4.7 MB/s
8m26s done
eject
instantaneous
2403758161÷506 = 4750510.2 = 4.75 MB/s = 4.53 MiB/s
결론적으로:
체크섬은 파일을 메모리에 복사하는 시간이 총 복사 시간보다 훨씬 짧음을 보여줍니다. 따라서 이를 전체 속도 추정의 일부로 사용하는 것은 잘못된 것 같습니다.
동기 복제는 약간 느린 것처럼 보이지만 적어도 남은 시간을 정확하게 전달합니다.
답변1
HDD는 USB 스틱보다 훨씬 빠르므로 HDD에서 파일을 읽으면 다른 작업을 위해 HDD를 확보하기 위해 캐시로 이동합니다. 그런 다음 데이터는 USB 드라이브가 처리할 수 있는 속도로 USB 드라이브로 전송됩니다.
캐시는 여러 번 참조되는 파일에 사용되지만 이것이 유일한 목적은 아닙니다. 이 예와 같이 어떤 시점에서는 파일을 처음으로 읽어야 합니다. 이제 곧 동일한 파일을 다시 복사하면 캐시가 HDD 대신 파일을 전송합니다. 일정 기간 동안 더 이상 참조되지 않으면 파일이 캐시에서 지워져 캐시에서 새 데이터를 처리할 수 있습니다.
답변2
데이터는 캐시/쓰기 버퍼에 기록되며 이는 매우 빠르게 발생합니다. 그런 다음 보조 저장 장치(USB)에 복사되는데 이 과정은 더 느리게 진행됩니다. 곧 캐시/쓰기 버퍼가 부족해지며, 이 시점에서 캐시/쓰기 버퍼에 쓰는 작업이 보조 저장소(USB)에 쓰는 속도가 느려집니다.
캐싱 없이 복사할 수 있습니다. 이것의 주요 이점은 다른(아마도 더 중요한) 데이터가 캐시에서 제거되지 않는다는 것입니다.