
외장 하드 드라이브가 있습니다. 바로 오늘 나는더 큰파일(~230MB의 필름)을 실행했는데 처음에는 ~70%까지 급등했습니다. 감소하기 시작했습니다.
- 처음에는 약 56MB/s에서 시작되었습니다.
- 그러다가 23MB/s로 급격히 떨어졌습니다. (파일 전송이 70% 완료되었습니다.)
- 그런 다음 약 2MB/s가 될 때까지 천천히 감소하기 시작했습니다(파일은 ~90% 완료되었습니다).
- 전송이 완료되었을 때 속도는 1.5MB/s보다 약간 높았습니다.
그래픽으로 설명하자면: 감소 곡선을 그리면 아마도 로그함수 그래프와 비슷할 것입니다.
그래서 제가 정말로 묻고 싶은 것은: "왜 이런 일이 발생합니까?" 그리고 "그 주위에 방법이 있나요?"
감사합니다!
답변1
가능한 이유:
- 대부분의 운영 체제는 데이터를 디스크에 즉시 쓰지 않고 RAM에 버퍼링하거나 "캐시"한 후 실제로 쓸 때까지 기다립니다. 이 때문입니다
- 한 번에 많은 데이터를 드라이브에 전송하는 것이 속도 측면에서 더 효율적이며
- NTFS/ext3/ext4 저널링은 개별 섹터 쓰기 대신 여러 트랜잭션을 기록하는 경우 효율적으로 작동합니다. 따라서 소량의 초기 쓰기 데이터가 완료된 것으로 보고되며 이는 빠르게 발생하며 디스크에 대한 실제 쓰기는 나중에 완료됩니다. 쓰기가 버퍼 파일을 구축하면 속도가 실제 물리적 쓰기 속도 또는 중간 속도와 일치합니다. Windows의 IIRC는 이동식 드라이브의 경우 기본적으로 비활성화되어 있지만 시스템에서는 설정이 그렇지 않을 수 있습니다.
- 대부분의 하드 드라이브에는 버퍼로 사용할 수 있는 RAM 용량이 있습니다. 이는 사용자와 하드 디스크 사이의 두 번째 "캐시" 계층일 수 있습니다. 하드 드라이브가 이를 쓰기에 사용하는지 확실하지 않지만 일부는 그렇게 할 수도 있습니다.
- 파일 전송 속도가 떨어지는 시점에 하드 드라이브가 조각화될 수 있습니다.
- Windows를 가정하면 "I/O 우선 순위"는 Windows Vista에 도입되어 7까지 계속되는 기능이라고 생각합니다. 제어 프로세스의 I/O가 최근에 Windows Vista에 유리하게 실행된 후 커널에서 우선 순위가 낮아졌을 수도 있습니다. 사용되거나 대화형 프로세스. 이는 단지 추측일 뿐이며 이 기능이 실제로 어떻게 작동하는지 잘 모르겠습니다.
- 동일한 USB 루트 허브의 다른 USB 통신은 버스 경합 및 속도 저하를 일으킬 수 있습니다.