매버릭스의 암호화 된 외장 드라이브에 대한 쓰기 속도가 매우 느림 확장 (저널링, 암호화)로

매버릭스에서 완전히 암호화 된 USB 플래시 드라이브에 쓰는 것은 매우 느립니다.

테스트에 사용한 드라이브 모델은 Kingston DataTraveler Ultimate 3.0 G3 (64GB)입니다. 암호화 된 드라이브와 암호화되지 않은 드라이브에서 큰 파일을 읽거나 쓰는 방식으로 전송 속도를 테스트했습니다. Mavericks가있는 최신 Macbook과 Mountain Lion이있는 구형 컴퓨터에서 테스트했습니다. 디스크 유틸리티를 사용하여 드라이브를 Mac OS 확장 (저널링) 및 Mac OS 확장 (저널링, 암호화)로 포맷했습니다.

OS X 10.9.2 (13C64)를 실행하는 USB 3.0이 설치된 MacBook Pro (2013)

쓰기 : 86.16MB / 초 (암호화 : 0.62MB / 초)

읽기 : 181.66MB / 초 (암호화 : 151.15MB / 초)

OS X 10.8.5 (12F45)를 실행하는 USB 2.0이 장착 된 MacBook Pro (2007)

쓰기 : 23.57MB / 초 (암호화 : 5.04MB / 초)

읽기 : 36.23MB / 초 (암호화 : 37.87MB / 초)

구형 머신에서 볼 수 있듯이 암호화 된 볼륨에 쓸 때 쓰기 속도는 분명히 떨어지지 만 Mavericks를 실행하는 최신 머신에 비해 여전히 10 배 정도 빠릅니다. 이것이 FileVault 또는 CoreStorage에서 최근에 소개 된 문제 일 수 있습니까?

업데이트 (2014-06-28)

USB 드라이브는 처음부터 하드웨어 결함이있는 것 같습니다. 나는 아직도 기대했던 결과를 제공하지 않는 교체 드라이브 (동일한 모델)를 얻었지만 적어도 2013 MBP의 암호화 된 쓰기 속도는 2007 MBP와 동등합니다.

OS X 10.9.3 (13D65)을 실행하는 USB 3.0이 장착 된 MacBook Pro (2013)

쓰기 : 135.41MB / 초 (암호화
: 9.29MB / 초) 읽기 : 196.22MB / 초 (암호화 : 187.04MB / 초)

OS X 10.8.5 (12F45)를 실행하는 USB 2.0이 장착 된 MacBook Pro (2007)

쓰기 :-MB / 초 (암호화 : 9.39MB / 초)
읽기 :-MB / 초 (암호화 : 37.79MB / 초)

2013 MBP의 USB 드라이브에 대한 암호화 된 쓰기 속도가 일반 쓰기 속도의 10 % 미만인 이유는 여전히 남아 있습니다. 또한 2013 MBP의 내부 SSD에서 FileVault를 활성화하기 전후의 읽기 / 쓰기 속도를 비교 한 결과 속도 저하를 전혀 감지 할 수 없었습니다.



답변

동일한 문제가 있습니다. 플래시 메모리에서 쓰기 작업이 작동하는 방식과 코어 스토리지 (또는 전체 볼륨) 암호화가 작동하는 방식 때문입니다.

첫째, 쓰기 동작 : 휘발성 메모리 (컴퓨터의 메모리에 사용되는 것들) 또는 하드 디스크 (언제든지 비트를 0 또는 1로 쓸 수있는 하드 디스크)와 달리 플래시 메모리에는 쓰기와 삭제라는 두 가지 주요 상태가 있습니다. “쓰기”안에는 0과 1이 있습니다. 플래시 메모리에 써야 할 경우 현재 소거 상태에있는 전체 블록을 써야합니다. OS의 파일 시스템 소프트웨어는 어떤 블록이 사용 가능한지 알 수 있지만 플래시 장치의 컨트롤러 및 스토리지는 그렇지 않습니다. OS가 “버스 연결”SSD를 위해 블록을 사용할 수 있도록 SSD에 알리는 특별한 방법이 고안되었습니다.이를 TRIM이라고합니다. USB 프로토콜 스택은 TRIM을 지원하지 않습니다. 따라서 기본적으로 플래시 메모리는 실제로 지워진 블록이 없을 때까지 계속 채워집니다.이 시점에서 파일 시스템은 블록을 읽어 블록을 지우고 다시 써야합니다. 새 데이터를 병합하고 지우고 다시 작성합니다. 이것이 작은 파일 쓰기 성능이 시간이 지남에 따라 SSD에서 저하되는 이유입니다.

암호화 된 볼륨의 특수한 상황은 흥미 롭습니다. 암호화가 작동하는 방식에 따라 실제로 전체 볼륨을 암호화하여 블록이 실제로 사용되지 않고 0을 포함하더라도 임의의 데이터로 보이는 블록으로 모든 블록을 채울 수 있습니다. 따라서 FileVault를 켜거나 코어 스토리지 암호화를 활성화하면 기본적으로 전체 볼륨이 소비되므로 쓰기 작업을위한 공간이 없습니다. 파일 시스템은 블록을 계속 읽고 읽고 지우고 다시 써서 암호화하려는 데이터로 블록을 다시 쓸 수 있어야합니다.

이제는 이것이 작동하는 방식에 대한 합리적인 이해를 바탕으로 한 추측이라고 말하지만 실제로 세부 사항을 알고 있고 내 설명을 수정하거나 향상시킬 수있는 사람들이 있으며 그렇게 할 수 있기를 바랍니다.