외장 드라이브로 대용량 파일을 전송할 때 이상한 현상을 발견했습니다. 복사 속도가 처음에는 300MB/s 이상으로 매우 높게 시작하지만, 결국에는 기어가는 수준으로 떨어지는 것이었습니다. 진행률 그래프는 매우 불규칙하게 나타났고, 몇 분이면 끝날 작업이 훨씬 더 오래 걸렸습니다. 인클로저와 케이블을 바꿔보고 심지어 발열 탓으로 돌리며 시간을 낭비했지만, 실제 원인은 2018년부터 기본값으로 설정되어 있던 USB 정책 때문이었습니다.
장치 관리자에서 설정을 한 번 변경하자 파일 전송 시간이 절반으로 줄었습니다. 전송 속도도 훨씬 예측 가능해졌습니다.
Windows가 이 기본값을 변경한 데에는 타당한 이유가 있습니다
대부분의 사용자는 드라이브를 안전하게 제거하지 않으며, Microsoft는 이를 당연하게 여기지 않기로 했습니다
Microsoft가 이 문제를 야기한 정책 업데이트를 도입하기 전인 Windows 10 버전 1809 이전에는, 이동식 드라이브가 쓰기 캐싱(write caching)에 의존했습니다. 이를 통해 OS는 메모리로 들어오는 쓰기 작업을 일시적으로 보류했다가 효율적인 배치 단위로 드라이브에 기록할 수 있었습니다. 이는 더 빠른 방식이었지만, 드라이브가 실수로 연결 해제될 경우 메모리에 있던 기록되지 않은 데이터가 손실될 수 있음을 의미했습니다.
하지만 많은 사용자가 드라이브를 뽑기 전에 안전하게 제거하지 않았기 때문에, Microsoft는 쓰기 캐싱을 완전히 비활성화하는 ‘빠른 제거(Quick Removal)’를 새로운 기본값으로 도입했습니다. 이제 데이터는 메모리 버퍼링 없이 드라이브로 직접 기록됩니다. 이는 제거 절차 없이 드라이브를 뽑을 때 더 안전합니다.
데이터를 몇 개만 옮기는 경우라면 완전히 합리적인 절충안이지만, 대용량 파일의 경우 쓰기 캐싱을 제거했을 때의 성능 저하는 명확합니다. 장치 관리자에는 두 가지 정책이 존재하며, 비교 결과는 다음과 같습니다.
| 빠른 제거 | 더 나은 성능 | |
|---|---|---|
| 쓰기 캐싱 | 비활성화 | 활성화 |
| 안전 제거 없이 뽑기 | 위험 낮음 | 위험 높음먼저 제거 필요 |
| 지속 쓰기 속도 | 현저히 낮음 | 현저히 높음 |
| 권장 용도 | 플래시 드라이브, 가끔 작은 파일 전송 | 외장 SSD, 대용량 또는 잦은 전송 |
오늘날 빠른 SSD는 일반적인 저장 장치 옵션이 되었습니다. 하지만 빠른 제거 정책은 특히 SSD를 염두에 두고 설계된 것은 아닙니다.
관련 항목
가장 심각한 속도 저하는 처음부터 발생하지 않았습니다
SSD는 빠른 캐시가 가득 찬 후에야 속도가 떨어지기 시작했습니다
전송 시작 시에는 최고 속도가 나오다가 나중에 경고 없이 속도가 급락했기 때문에 정말 혼란스러웠습니다. 이러한 패턴에는 두 가지 원인이 있으며, 해결책을 이해하려면 두 가지 모두를 알아야 합니다.
앞서 언급한 Windows 정책이 첫 번째 원인입니다. 두 번째는 SSD의 지속 쓰기 처리 방식입니다. 대부분의 소비자용 SSD에는 고속 임시 버퍼로 사용되는 NAND 플래시의 일부인 SLC 캐시가 있습니다. 전송 시 데이터가 처음에 도달하는 곳이 바로 이 캐시이며, 이것이 초기 속도가 높은 이유입니다. 드라이브가 더 느린 TLC 또는 QLC NAND에 직접 쓰기를 시작하면 속도가 급격히 떨어지는 것을 보게 됩니다.
빠른 제거 정책은 이러한 메커니즘의 단점을 더욱 두드러지게 만듭니다. 드라이브의 캐시가 가득 차면 속도가 떨어지는데, 쓰기 캐싱이 없기 때문에 그 영향이 쉽게 체감되는 것입니다. SLC 캐시 소진은 하드웨어적 제약이므로 ‘더 나은 성능’으로 전환한다고 해서 해결되지는 않습니다. 하지만 이 설정 변경은 캐시가 가득 찬 후의 동작 방식을 즉시 개선합니다. 테스트 결과는 다음과 같습니다.
| 측정 항목 | 빠른 제거 | 더 나은 성능 |
|---|---|---|
| 최고 속도 | ~300 MB/s | ~350 MB/s |
| 캐시 소진 후 지속 속도 | 3060 MB/s | 80180 MB/s |
| 평균 지속 속도 | 60120 MB/s | 150280 MB/s |
| 50 GB 혼합 폴더 전송 시간 | 714분 | 36분 |
초기 버스트는 정책과 관계없이 SLC 캐시가 처리하므로 최고 속도는 매우 비슷했습니다. 그 아래 행부터 실제 차이가 나타나기 시작합니다.
CrystalDiskMark를 사용하여 확인한 결과도 비슷했습니다. 1 GiB 순차 쓰기 테스트에서는 SSD 캐시가 부하를 흡수했기 때문에 두 정책 모두 비슷한 결과가 나왔습니다. 하지만 8 GiB 테스트에서는 ‘더 나은 성능’ 프로필로 설정했을 때 더 높은 속도를 확인할 수 있었습니다.
##### CrystalDiskMark
OS Windows
개발자 Crystal Dew World
무료 체험 가능
개별 가격 무료/$9.99
CrystalDiskMark는 SSD, 하드 드라이브, USB와 같은 저장 장치의 읽기 및 쓰기 속도를 테스트하는 데 사용되는 간단하고 대중적인 오픈 소스 벤치마킹 도구입니다.
이 설정은 대부분의 사람이 절대 확인하지 않을 곳에 숨겨져 있습니다
USB 컨트롤러가 아닌 디스크 드라이브 항목에 있습니다
정책 변경은 간단한 과정입니다:
시작 메뉴를 마우스 오른쪽 버튼으로 클릭하고 장치 관리자를 클릭합니다. 디스크 드라이브를 확장한 다음, SSD를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다. 정책 탭을 클릭합니다. 기본값은 ‘빠른 제거’로 되어 있는데, 이를 ‘더 나은 성능’으로 변경합니다. 쓰기 캐싱 정책 섹션에서 ‘장치에 쓰기 캐싱 활성화’를 선택하고 확인을 클릭합니다. 특히 USB 장치로 파일을 전송하는 경우 논리적으로는 ‘범용 직렬 버스 컨트롤러’ 항목을 찾게 되므로 이 설정은 잘못된 위치에 숨겨져 있는 것처럼 보입니다. 하지만 이는 포트가 아닌 드라이브 자체에 대한 설정입니다.
정책을 변경한 후에는 드라이브나 USB를 안전하게 제거했다가 다시 연결하고 전송을 진행하십시오. 변경 사항이 확실히 적용되도록 시스템을 재부팅할 수도 있습니다.
이것은 병목 현상 하나를 제거했을 뿐, 모든 병목 현상을 해결한 것은 아닙니다
제가 보여드린 결과는 USB 3.2 Gen 2 연결에 연결된 빠른 SSD에서 나온 것입니다. 모든 설정에서 동일한 속도를 기대할 수는 없습니다. USB 인터페이스가 쓰기 캐싱이 낼 수 있는 속도에 상한선을 두기 때문입니다. 대용량 비디오나 RAW 사진 라이브러리, 대용량 혼합 폴더 및 기타 대용량 파일 전송 시에는 정책 변경이 도움이 되지만, 일반적인 용도로는 변경해도 실질적인 이점이 없으므로 ‘빠른 제거’를 유지해도 괜찮습니다.
가장 중요한 점은 정책을 변경한다고 해서 느린 드라이브가 빨라지는 것은 아니며, 단지 OS가 전송 속도를 제한하지 않도록 보장할 뿐이라는 것입니다. 이 정책은 제가 더 일찍 알았더라면 좋았을 기능 중 하나입니다.
