몇 분 동안 복사하면 속도가 느려지고 느려집니다. 왜?
예를 들어 20MByte / sec로 시작하고 완료되면 @ 10MByte / s입니다.
다양한 파일, 크고 작은 등
업데이트 : 질문은 다양한 운영 체제와 관련이 있으므로 "일반적인 질문"입니다.
몇 분 동안 복사하면 속도가 느려지고 느려집니다. 왜?
예를 들어 20MByte / sec로 시작하고 완료되면 @ 10MByte / s입니다.
다양한 파일, 크고 작은 등
업데이트 : 질문은 다양한 운영 체제와 관련이 있으므로 "일반적인 질문"입니다.
답변:
이 동작은 플래시 드라이브에만 국한된 것이 아니며 하드 드라이브에서도 볼 수 있습니다. 대부분의 운영 체제와 디스크는 작은 쓰기 속도를 높이기 위해 사용하는 캐싱 메커니즘과 관련이 있습니다.
20mb / s는 디스크 캐시에 기록되는 데이터입니다 (보통 빠르지 만 작은 메모리). 이 캐시가 가득 차면 디스크로 플러시되어야합니다. 이제 디스크 속도가 느려 병목 현상이 발생합니다.
예 1 : 큰 캐시 (예 : RAID5 컨트롤러와 같은)가 큰 컨트롤러가 있고 디스크에 플러시하기 전에 최대 500MB의 데이터를 캐시 할 수있는 경우 효과가 실제로 두드러집니다.
예 2 : 파일 복사가 "완료"된 상태에서 플래시 드라이브를 동시에 꺼내면 캐시가 재생중인 것을 볼 수 있습니다. 이 시점에서 파일이 디스크와 캐시간에 분할되므로 운영 체제와 관련하여 사본이 "완료"되지만 디스크 컨트롤러는 여전히 캐시에 남아있는 내용을 디스크에 기록해야합니다. 플래시 드라이브를 다시 넣고 파일을 검사하면 파일이 모두 없다는 것을 알 수 있습니다.
면책 조항 : 운영 체제 / 디스크에서 쓰기 캐싱을 활성화하지 않으면이 예제가 작동하지 않습니다.
또한 직장에서 디스크 캐싱 이 아닌 경우 보고있는 것이 조각화의 영향 일 수 있습니다. 디스크 용량이 커지고 사용 가능한 공간이 줄어들면 파일 시스템을 파일 위치를 찾기 위해 더 열심히 노력해야합니다.
캐싱으로 인해이 중 일부가 발생하지만 이것이 유일한 요인은 아닙니다. 캐싱이 유일한 요인이라면 쓰기 속도가 수백 MB / s에서 드라이브의 실제 쓰기 속도로 매우 빠르게 떨어질 것으로 예상하고 나머지 쓰기 동안 그대로 유지합니다. 그러나 이것은 디스크로 또는 디스크에서 대량 전송을 수행 할 때 관찰 한 것이 아닙니다 (예 : 부팅 이미지 굽기). 대신, 내가 관찰 한 것은 전체 작업 과정에서 속도가 점차 감소한다는 것입니다.
이러한 속도 저하는 데이터를 저장하는 데 사용되는 플래시 칩의 데이터 잔상으로 인해 발생하며 일부 블록은 두 번 이상 기록되어야합니다.
플래시 칩 내부에는 쓸 수있는 데이터 블록이 있습니다. 기록 할 때 컴퓨터가 할 수있는 것은 두 가지뿐입니다. 전체 블록을 지우거나 블록의 비트 일부 또는 전부를 0에서 1로 변경할 수 있습니다.
그러나 이러한 블록 중 일부는 다른 것보다 낫습니다. 특히 저품질 플래시 드라이브에서 새 데이터를 쓸 때 일부 비트는 때로는 쓰기 직후에 0으로 다시 전환 될 수 있습니다. 변하지 않아 따라서 블록에 쓸 때 OS는 모든 데이터가 올바르게 기록되었는지 확인해야하며 그렇지 않은 경우 동일한 데이터를 동일한 블록에 두세 번 기록하여 블록을 다시 실행해야합니다. 데이터가 고착 될 때까지
따라서 컴퓨터가 플래시 드라이브에 많은 양의 데이터를 쓰는 경우 다음은 그 방법에 대한 설명입니다 (완전히 정확하지는 않지만 충분합니다).
컴퓨터가 드라이브에 쓰는 중이면 처음으로 드라이브에 블록을 쓰는 속도를보고합니다. 또한 이전 블록을 동시에 다시 작성해야하므로 처녀 블록에 사용할 수있는 총 처리량은 다시 작성 횟수도 증가함에 따라 줄어 듭니다. 따라서 겉보기 쓰기 속도는 시간이 지남에 따라 감소합니다.
파일이 드라이브에 쓰여질 때 플래시 USB 드라이브 또는 하드 드라이브인지 여부는 데이터가 일치하는지 확인하기 위해 읽거나 읽지 않습니다. 그것은 영원히 걸릴 것입니다. 쓰기 검증은 하드웨어에 의해 수행되며 (Cyclic Redundancy check) 오류가 발생하면 하드웨어에서 오류를 감지하여 애플리케이션에 다시 게시됩니다. CPU 정지는 장치가 처리 할 수있는 것보다 빠르게 쓰기 때문에 발생하고 속도가 느려지는 정지 (일시 중지까지도)가 발생합니다. 내부 하드 드라이브에서는 이런 일이 발생하지 않습니다. Windows OS에서는 실제로 어떤 일이 일어나고 있는지 알 수 없지만 Linux에서는 USB 하드웨어가 계속 OK라고 말할 때까지 CPU가 일시 중지되는 것을 실제로 볼 수 있습니다