외장 드라이브를 연결하면 Mac이 느려지는 이유

외장 드라이브를 꽂는다고 시스템 전체가 느려져서는 안 되지만, 흔히 그렇게 됩니다. 무대 뒤에서 무슨 일이 벌어지는지, 그리고 어떻게 고치는지 알아봅니다.

외장 드라이브를 꽂으면 Mac이 버벅거리기 시작합니다. Finder가 응답하는 데 더 오래 걸립니다. 앱이 끊깁니다. 빙빙 도는 비치볼이 등장합니다. 드라이브를 뽑으면 모든 것이 정상으로 돌아갑니다.

간단한 답: 외장 드라이브를 꽂으면 Spotlight 색인, Finder 미리보기 생성, .DS_Store 쓰기, Time Machine 검사가 한꺼번에 시작됩니다. 가장 큰 단일 원인은 Spotlight입니다. sudo mdutil -i off /Volumes/YourDriveName(또는 시스템 설정 > Siri 및 Spotlight > Spotlight 개인정보 보호)으로 그 드라이브에 대해 비활성화하세요. 고장 나 가는 드라이브도 시스템 전반의 입출력 정체를 일으킵니다. 성능 저하가 심하면 디스크 유틸리티에서 SMART 상태를 확인하세요.

이렇게 작동해서는 안 됩니다. 외장 드라이브는 그저 저장소일 뿐입니다. 하지만 macOS는 연결된 모든 드라이브를 상호작용할 대상으로 취급하고, 그 상호작용이 시스템 전체를 끌어내릴 수 있습니다.

Spotlight 색인이 주된 범인입니다

외장 드라이브를 연결하는 순간, Spotlight가 그것을 색인하기 시작합니다. 파일이 수천 개인 드라이브의 경우, 이 색인 과정은 상당한 CPU와 디스크 입출력을 소비합니다.

Spotlight는 파일이 존재한다고 기록만 하는 것이 아닙니다. 파일을 읽습니다. 문서에서 메타데이터를 추출하고, 텍스트 파일을 분석하고, 이미지의 미리보기를 생성하고, 이메일 보관함을 목록화합니다. 문서, 사진, 미디어로 가득한 드라이브에서는 몇 시간 동안 이어지는 강도 높은 작업일 수 있습니다.

Spotlight가 색인하는 동안 Mac의 자원은 사용자 작업과 색인 과정 사이에서 나뉩니다. CPU 사용량이 치솟습니다. 메모리 압박이 커집니다. 그리고 외장 드라이브가 느리면(예를 들어 USB 2.0으로 연결된 회전식 하드 드라이브) 입출력 병목이 시스템 전반의 지연으로 번질 수 있습니다.

해결책은 간단합니다. 색인을 완전히 막으려면 드라이브를 Spotlight 개인정보 보호 목록에 추가하세요.

시스템 설정 > Siri 및 Spotlight > Spotlight 개인정보 보호를 엽니다. 외장 드라이브를 목록에 추가합니다. Spotlight가 즉시 드라이브를 놓아주고 다시 색인하지 않습니다.

또는 터미널에서:

sudo mdutil -i off /Volumes/YourDriveName

Spotlight에서 드라이브 내용을 검색하는 기능은 잃지만, 꽂을 때마다 Mac이 기어가다 멈추는 일은 사라집니다. (Spotlight가 일상적인 드라이브 작업을 어떻게 방해하는지에 대해서는 Spotlight가 디스크 추출을 막는 경우 글을 참고하세요.)

Finder 썸네일 및 미리보기 생성

Finder는 파일을 둘러볼 때 미리보기와 썸네일을 생성합니다. 외장 드라이브의 폴더를 열면, Finder는 가능한 모든 파일(이미지, PDF, 동영상, 문서)에 대해 시각적 미리보기를 만들기 시작합니다.

빠른 내장 SSD에서는 이것이 빠르게 일어나 거의 알아채지 못합니다. 외장 드라이브, 특히 하드 드라이브에서는 미리보기 생성이 폴더당 몇 분씩 걸릴 수 있습니다. 그동안 Finder가 굼떠집니다.

이 부담을 줄이려면, 아이콘 보기나 갤러리 보기 대신 목록 보기(Command-2)나 열 보기(Command-3)로 전환하세요. 목록 보기와 열 보기는 전체 미리보기가 아니라 파일 유형 아이콘만 생성합니다.

썸네일 미리보기를 완전히 끌 수도 있습니다. Finder에서 보기 > 보기 옵션 보기(Command-J)로 가서 “아이콘 미리보기 보기"의 체크를 해제하세요. 외장 드라이브의 폴더를 보는 동안 이를 하면 그 위치에 적용됩니다.

.DS_Store 문제

Finder에서 폴더를 열 때마다 macOS는 그 폴더에 .DS_Store 파일을 씁니다. 이 파일은 보기 설정, 아이콘 위치, 기타 메타데이터를 저장합니다.

내장 드라이브에서는 즉시 일어납니다. 외장 드라이브에서는 .DS_Store 파일을 쓰는 데 입출력이 발생합니다. 외장 드라이브의 여러 폴더를 둘러보면, Finder가 이 작은 파일들을 끊임없이 쓰는데, 각 파일은 느린 드라이브에서 멈출 수 있는 쓰기 작업을 요구합니다.

외장 드라이브의 경우, 네트워크 볼륨에서의 .DS_Store 생성을 다음으로 막을 수 있습니다.

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

안타깝게도 이동식 USB 드라이브에 한정해 .DS_Store를 막는 기본 macOS 설정은 없습니다. 네트워크 저장소 설정은 USB나 Thunderbolt 드라이브에는 적용되지 않습니다.

Time Machine의 백업 상태 확인

외장 드라이브를 Time Machine에 쓴 적이 있다면, macOS는 연결할 때마다 드라이브의 백업 상태를 확인합니다. 여기에는 백업 카탈로그를 읽고, 현재 시스템 상태와 비교하고, 무엇을 백업해야 할지 판단하는 일이 포함됩니다.

큰 백업 기록의 경우 이 확인은 자원을 많이 쓸 수 있습니다. 그리고 Time Machine이 백업할 때가 되었다고 판단하면 즉시 시작하여 CPU와 입출력을 모두 소비합니다. 이는 Time Machine 드라이브를 그토록 추출하기 어렵게 만드는 것과 같은 backupd 관련 지연입니다. 그 측면은 Time Machine이 드라이브를 추출하지 못하게 할 때에서 구체적으로 다룹니다.

드라이브를 Time Machine 임무에서 은퇴시켰다면, 시스템 설정 > 일반 > Time Machine에서 Time Machine 드라이브 목록에서 제거하세요. 그러지 않으면 macOS가 계속 그것을 백업에 쓰려고 합니다.

고장 나 가는 드라이브가 입출력 정체를 일으킵니다

하드웨어 문제가 있는 드라이브는 그 드라이브가 하는 일에 비해 과해 보이는 시스템 전반의 속도 저하를 일으킬 수 있습니다.

섹터를 읽을 수 없으면, 드라이브는 실패를 보고하기 전에 읽기 작업을 여러 번 재시도합니다. 각 재시도에 시간이 걸립니다. macOS가 (예를 들어 Spotlight 색인을 위해) 불량 섹터에서 읽으려 하면 입출력 대기열이 밀립니다. 내장 드라이브를 위한 것을 포함한 다른 입출력 작업이 기다리며 멈춥니다.

디스크 유틸리티에서 드라이브 상태를 확인하세요. SMART 상태 항목을 보세요. “확인됨"이 아닌 다른 무언가가 표시되면, 드라이브가 고장 나 가며 예상보다 큰 성능 문제를 일으키고 있을 수 있습니다.

USB 대역폭 공유

외장 드라이브가 다른 기기와 USB 버스를 공유하면 대역폭을 두고 경쟁합니다. 같은 버스의 두 USB 기기는 가용 처리량을 나눠 씁니다.

이는 (대역폭이 더 넓은) Thunderbolt 도크에서는 덜한 문제지만, USB 허브에서는 상당할 수 있습니다. 같은 USB 허브에 연결된 하드 드라이브와 웹캠은 각각 단독으로 쓸 때보다 성능이 나쁩니다.

시스템 정보 > USB에서 각 기기가 어느 버스에 연결되어 있는지 확인하세요. 외장 드라이브가 다른 기기와 버스를 공유한다면, 전용 포트로 옮겨 보세요.

백신 및 보안 소프트웨어

서드파티 백신 소프트웨어가 설치되어 있다면, 새로 연결된 모든 드라이브의 모든 파일을 검사할 가능성이 큽니다. 이 검사는 Spotlight 색인과 Finder 미리보기 생성 위에 더해져 입출력 부하를 세 배로 늘립니다.

대부분의 보안 소프트웨어는 특정 볼륨을 실시간 검사에서 제외할 수 있습니다. 신뢰하는 외장 드라이브를 제외 목록에 추가하세요.

외장 드라이브를 덜 고통스럽게 만들기

외장 드라이브의 성능 영향은 누적됩니다. Spotlight, Finder 미리보기, .DS_Store 쓰기, Time Machine 검사, 그리고 잠재적으로 백신 검사가 드라이브를 연결할 때 모두 쌓입니다.

Spotlight 색인을 비활성화하는 것만으로도 가장 큰 성능 타격이 사라집니다. 그 외에 Finder에서 목록 보기를 쓰고, 은퇴한 드라이브를 Time Machine에서 제거하고, 드라이브 상태를 확인하는 것이 대부분의 상황을 다룹니다.

추출 측면에서 보면, 느린 드라이브는 추출하기도 더 어려운 드라이브입니다. 시스템 프로세스가 느린 입출력을 기다리며 밀려 있으면, 평소보다 더 오래 파일 핸들을 붙듭니다. Mac의 성능을 끌어내리는 드라이브는 추출에도 저항하는 경향이 있습니다. 전체 그림은 macOS 디스크가 사용 중 문제 해결 가이드를 참고하세요.

Ejecta는 어떤 프로세스가 여전히 드라이브에 접근하고 있는지 정확히 찾아냄으로써 추출 측면에서 도움을 줍니다. Spotlight가 문제라면 즉시 보고 종료할지 결정할 수 있습니다. 추측도, 터미널 출력을 헤집는 일도 없이, 무엇이 드라이브를 사용 중이고 왜 Mac이 버거워하는지에 대한 명확한 답만 있습니다.

매번 터미널을 쓰고 싶지 않다면, Ejecta가 어떤 프로세스가 드라이브를 막고 있는지 정확히 보여주고 메뉴 막대에서 클릭 한 번으로 종료할 수 있게 해줍니다.

지금 구입 — $9.99