USB 장치에 파일을 복사하면 Windows (같은 USB 장치, 동일한 포트)보다 시간이 오래 걸리고 USB 1.0 속도 (1MB / s)보다 빠르지 만 USB 2.0 속도 (12MB / s)보다 훨씬 느립니다. 1.8GB를 복사하려면 10 분 이상 걸립니다 (<3 분). 두 개의 동일한 SanDisk Cruzer 8GB 스틱이 있으며 둘 다에 동일한 문제가 있습니다. 주변 포트에 뛰어난 재능의 32GB USB SSD가 있으며 예상 속도로 작동합니다.
GUI에서 볼 수있는 문제는 진행률 표시 줄이 거의 즉시 90 %로 가고 조금 느리게 100 %까지 완료 한 다음 10 분 동안 멈추는 것입니다. 이 시점에서 복사를 중단하면 파일의 끝 부분이 손상되는 것으로 보입니다. 복사가 완료 될 때까지 기다리면 복사가 성공한 것입니다.
어떤 아이디어? 아래 dmesg 출력 :
[64059.432309] usb 2-1.2: new high-speed USB device number 5 using ehci_hcd
[64059.526419] scsi8 : usb-storage 2-1.2:1.0
[64060.529071] scsi 8:0:0:0: Direct-Access SanDisk Cruzer 1.14 PQ: 0 ANSI: 2
[64060.530834] sd 8:0:0:0: Attached scsi generic sg4 type 0
[64060.531925] sd 8:0:0:0: [sdd] 15633408 512-byte logical blocks: (8.00 GB/7.45 GiB)
[64060.533419] sd 8:0:0:0: [sdd] Write Protect is off
[64060.533428] sd 8:0:0:0: [sdd] Mode Sense: 03 00 00 00
[64060.534319] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.534327] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.537988] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.537995] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.541290] sdd: sdd1
[64060.544617] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.544619] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.544621] sd 8:0:0:0: [sdd] Attached SCSI removable disk
답변
Linux에서 USB 드라이브로 복사하는 것이 왜 그렇게 느리고 (Windows에서는 더 빠름)?
이유 1. 파일 캐싱으로 쓰기 속도 가 느리거나 빠르게 나타날 수 있습니다
GUI에서 볼 수있는 문제는 진행률 표시 줄이 거의 즉시 90 %로 가고 조금 느리게 100 %까지 완료 한 다음 10 분 동안 멈추는 것입니다.
이해해야 할 것은 파일 캐싱입니다. Linux (및 Windows)는 그렇지 않으면 “빈”RAM을 사용하여 읽기 / 쓰기 작업을 캐시하고 후속 액세스에서 더 빠르게 만듭니다. 복사 작업을 느리게 수행하여 장치를 느리게 캐시하면 “빠른 완료”가 실제로 캐시에 기록 된 다음 캐시의 데이터를 실제로 플러시 (동기화)하여 느리게 중지됩니다. 아주 오래 걸 렸어요 이 시점에서 중단하면 동기화가 완료되지 않았으므로 데이터 (손상된대로)가 손상됩니다.
Windows에서 이러한 복사 는보고 된 MB / 초 속도를 포함하여 더 빨리 보일 수 있습니다. 때로는 Windows 가 동기화를 기다리지 않고 데이터가 캐시에 기록되는 즉시 작업이 완료된 것으로 선언하기 때문입니다.
이유 2. 많은 파일, 특히 작은 파일을 쓰는 것이 느립니다
1.8GB를 복사하려면
플래시 메모리 및 파일 시스템의 작동 방식으로 인해 매우 큰 파일을 작성할 때 가장 빠른 처리량 (속도)이 달성됩니다. 작은 파일을 많이 쓰거나 여러 개의 작은 파일을 포함하는 혼합 데이터를 쓰면 프로세스 속도가 느려질 수 있습니다. 이것은 하드 드라이브에도 영향을 주지만 다소 덜 영향을줍니다.
이유 3. USB 스틱과 SSD의 쓰기 속도를 비교할 수 없습니다
주변 포트에 뛰어난 재능의 32GB USB SSD가 있으며 예상 속도로 작동합니다.
-
가든 종류의 USB 스틱은 일반적으로 직렬로 (순차적으로) 기록되며 자체 캐시가없는 플래시 메모리 칩으로 구성됩니다.
-
반면 SSD에는 플래시 메모리 칩에 병렬로 쓰는 컨트롤러가 포함되어있어 USB 스틱보다 처리량이 2 배 이상 증가합니다.
- 32GB SSD에 4x 8GB 칩이 있다면 쓰기 작업에서 USB 스틱보다 4 배 빠릅니다.
- SSD 에는 또한 하드 디스크와 같은 RAM 캐시가 포함되어 있기 때문에 들어오는 데이터를 캐시에 빠르게 저장하고 OS에 완료 사실을 알려주는 동시에 실제로 해당 데이터를 플래시 메모리에 기록해야합니다.
-
따라서 우리가 가정 한 4x 구조의 32GB GB는 하나의 큰 파일로 4 배 빠릅니다. 작은 파일이 많으면 지능적으로 캐시에 저장할 수 있으므로 10 배 이상 빠릅니다.
요약 하면, USB 스틱에 파일 복사가 Linux에서 느리게 나타날 수있는 이유가 여기에 있습니다. 하드웨어 / 드라이버 문제 등으로 인해 실제로 느려 집니까? …
Linux와 Windows 간의 쓰기 속도를 적절히 비교
- 우선, 이유 3 때문에 SSD를 잊어 버리십시오. 마치 오렌지 나 사과와 같습니다.
- 이유 1 (캐싱) 및 이유 2 (작은 파일)의 영향을 무시하려면 테스트 시스템의 RAM 크기보다 큰 단일 큰 파일로 테스트해야합니다.
- Linux에서는
dd if=/dev/urandom of=largetest bs=1M count=7500
을 사용하여 7500MB 테스트 파일을 만들 수 있습니다 . 시스템에 4GB 이하의 RAM이 있다고 가정하면 충분합니다. 새로 포맷 한 Sandisk 8GB 스틱에 복사하여 시간을 정하십시오. - Windows에서 재부팅
largetest
하고 USB 스틱에서 하드 디스크로 복사 하십시오. 다시 재부팅하십시오 (캐시에서 제거). 그런 다음 USB 스틱 (같은 vfat / FAT32!)을 포맷하고largetest
하드 디스크에서 스틱으로 복사 하십시오. - 시간은 어떻게 비교됩니까?
답변
마운트 해제, 드라이브 제거 및 sudo modprobe ehci_hcd
터미널에서 실행 한 모든 수정 사항을 찾았습니다 . 드라이브를 sudo modprobe ehci_hcd
넣을 때 드라이브와 agian를 삽입하고 20 / mbs를 공유한다고 생각하십시오. 매번 그렇게 할 필요가 없기를 바랍니다 …하지만 어렵지는 않습니다 …
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/177235
는 버그를 수정했다고 말합니다.
답변
포트 문제 일 가능성이 매우 낮다고 생각합니다. LINUX (또는 Linux 구성) 문제 일 가능성이 큽니다. linux / ubuntu에서 느린 USB에 대한 수천 가지 문제 보고서를 찾을 수 있습니다. 나에게 그것은 거의 리눅스의 showtopper입니다-이제 우분투 12.04 LTS가 있고 여전히이 문제가 있습니다 (따라서 주로 Win7 설정을 사용합니다-주로 /이 때문에). 이 문제 (또는 비슷한 증상이있는 것)는 현재 몇 년 동안 있었으며 분명히 해결되지 않았습니다. 그리고이 기간 동안 여러 가지 우분투 버전 (기본 구성)과 2-3 가지 USB 스틱을 사용하여 여러 실제 PC를 사용해 보았습니다 …
답변
그냥 umount
장치가 이미 자동 마운트, 수동으로 마운트되어있는 경우 /mnt/foldername
.
나의 경우에는,
umount /media/usb0
mount /dev/sdb1 /mnt/sam
그 후에는 매우 빠르게 대처하고 있습니다.
답변
2019 년이며 여전히 동일한 문제가 있습니다. 그래서 인터넷에서 해결책을 찾는다고 생각했습니다. 나는 하나를 제안하는 다음 페이지를 발견했다 : https://gist.github.com/2E0PGS/f63544f8abe69acc5caaa54f56efe52f
그것은 말한다 :
콘솔에서 다음 명령을 실행하여 문제가 해결되는지 확인하십시오. sudo su
필요한 권한 이 있어야 할 수도 있습니다 .
echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes
작동하는 경우 /etc/rc.local
파일 끝에 두 줄을 붙여서 재부팅 동안이 변경 사항을 지속시킬 수 있습니다.
나에게 그것은 다음과 같은 효과가 있었다.
큰 파일을 USB 드라이브에 복사하기 전에 실제로는 60MB / s와 같은 속도로 시작하여 결코 끝나지 않을 때까지 속도가 느려집니다 (<10MB / s).
이제는 느리게 시작되지만 더 빨라지고 빨라지고 이전보다 빨리 완료됩니다. 따라서 문제를 “해결”하거나 최소한 긍정적 인 효과가있는 것 같습니다.
답변
USB 3.0으로 전환하면 1mb / s에서 5-8mb / s로 바뀝니다. 3.0 USB PCI 및 외부 HD로 전환했는데 되돌아 보지 않았습니다.
답변
/ etc / mtab에서 장치가 “플러시”옵션으로 마운트되었음을 알 수 있습니까?
그렇다면 이것이 문제의 원인 일 수 있습니다 (나를위한 것입니다). 장치를 마운트 해제했다가 다시 마운트하면 기본적으로 설정되어 있지 않아야합니다.