블로그로 돌아가기
·9분 분량·productdevbook

macOS에서 숨은 대역폭 잡아먹는 앱 찾는 방법

도우미 프로세스, 시스템 데몬, 조용한 백그라운드 동기화 뒤에 숨은 macOS 대역폭 포식자들을 찾는 실용 가이드입니다.

  • macOS
  • Bandwidth
  • Troubleshooting
  • Network monitoring

모든 앱을 종료했습니다. 모든 브라우저 탭을 닫았습니다. Wi-Fi 아이콘이 메뉴 바에서 움직여야 할 유일한 것입니다. 그런데도 라우터가 시간 시간에 8Mbps의 지속적인 업로드를 보여주고 있습니다. Mac의 어딘가에서 무언가가 통신하고 있고 — 일반적인 용의자 중 어느 것도 열려 있지 않습니다. macOS가 후드 아래에 숨기는 대역폭 하마를 사냥하는 것은 명백한 위반자를 추적하는 것과 다른 종류의 디버깅입니다.

Dock의 보이는 앱이 진짜 문제인 경우는 드뭅니다. 숨은 것이 그렇습니다: 도우미 프로세스, 시스템 데몬, 백그라운드 전용 유틸리티, UI가 전혀 없는 로그인 시 실행되는 에이전트. 이 글은 그것들을 찾고, 명명하고, 무엇을 할지 결정하는 방법을 안내합니다.

macOS가 표면화하는 최악의 대역폭 하마가 숨어 있는 이유

사람들이 Mac에 숨은 대역폭 하마가 있다고 말할 때, 보통 네 범주 중 하나를 의미합니다.

  1. 도우미 프로세스 — Chrome Helper, Slack Helper 등. 인식하는 부모 앱이 있지만, 트래픽이 익숙하지 않은 PID 아래에 나타납니다.
  2. 시스템 데몬cloudd, mediaanalysisd, nsurlsessiond, mDNSResponder, apsd. macOS의 일부이고 진짜 일을 하지만, 이름이 이해하기 어렵습니다.
  3. 백그라운드 전용 앱 — Dock 아이콘이 없는 백업 에이전트, 안티바이러스, RGB 조명 데몬, 클라우드 동기화 클라이언트.
  4. LaunchAgent와 LaunchDaemon — 자동 시작하고 Cmd+Tab 전환기에 절대 나타나지 않는 launchd로 등록된 작은 지속 프로그램.

이 각각은 다른 방식으로 보이지 않으며, 각각 트래픽을 올바르게 귀속시키기 위해 약간 다른 접근이 필요합니다.

도우미 프로세스 찾기와 부모 아래로 접기

이는 가장 흔한 혼란의 출처입니다. 활성 상태 보기 → 네트워크를 열면 다음과 같은 것을 볼 것입니다.

Google Chrome Helper (Renderer)   45.2 MB sent
Google Chrome Helper (GPU)         0.8 MB sent
Google Chrome Helper (Plugin)      2.1 MB sent
Google Chrome Helper              18.4 MB sent
Google Chrome Helper              22.7 MB sent
Google Chrome Helper               9.0 MB sent
Google Chrome                      0.3 MB sent

일곱 행, 개별적으로는 무섭지 않고, 총 약 100MB. Slack, Discord, Telegram, Teams, VS Code, Notion, 그리고 대부분의 Electron 기반 앱이 같은 패턴을 따릅니다.

도우미 트래픽을 올바르게 귀속시키려면 행을 손으로 더하거나 그것을 해 주는 도구를 사용해야 합니다.

도우미 프로세스 접기
ova는 모든 도우미 PID를 부모 앱 아래로 그룹화하므로 일곱 개의 도우미 행 대신 "Slack"을 읽습니다. 렌더러, GPU, 플러그인 도우미 모두 한 이름 아래로 굴러갑니다.

ova는 이 접기를 자동으로 합니다. 다른 몇 가지 도구도 그렇습니다. 요점은: 도우미를 접지 않는 어떤 앱별 뷰든 큰 Electron 앱이 실제로 얼마나 사용하는지를 적게 평가할 것입니다.

가장 흔한 시스템 데몬 디코딩

이것들은 백그라운드 작업을 포함하는 어떤 프로세스 목록에서든 볼 것들입니다. 짧은 현장 가이드:

cloudd

Apple의 클라우드 데몬. iCloud Drive, iCloud 사진 업로드, 그리고 iCloud를 동기화 백엔드로 사용하는 모든 앱에 대한 CloudKit 트래픽을 처리합니다. 여기 큰 급증은 보통 사진이 원본을 보내거나 서드파티 앱(메모 앱, 책갈피 동기화)이 조정하고 있다는 것을 의미합니다.

nsurlsessiond

다른 앱을 대신해 백그라운드 URL 세션을 실행하는 시스템 서비스 — 특히 Mac이 전원과 Wi-Fi에 있을 때. App Store 업데이트, 백그라운드에서 다운로드되는 팟캐스트, 그리고 iCloud 업로드가 모두 여기 나타날 수 있습니다. 원본 앱은 종종 한 계층 아래에 숨어 있습니다.

mediaanalysisd

로컬 미디어 분석(사진의 얼굴/객체 인식, 장면 분석). 대부분 CPU와 디스크이지만, 결과가 다른 기기로 동기화되어야 할 때 cloudd를 트리거합니다. mediaanalysisd가 바쁘고 cloudd가 업로드 중이라면, 그 둘은 보통 함께 일하고 있습니다.

softwareupdated

시스템 업데이트 다운로더. 이것이 바쁘다면, macOS가 업데이트를 끌어오고 있는 것입니다 — 4~15GB가 될 수 있습니다.

mDNSResponder

Bonjour / 멀티캐스트 DNS. WAN 측면에서 0에 가까워야 합니다. LAN의 무거운 mDNSResponder 트래픽은 보통 잘못 구성된 앱이 너무 적극적으로 방송하고 있다는 의미이지만, 인터넷 요금제를 먹어서는 안 됩니다.

apsd

Apple Push Notification 데몬. 푸시 알림을 위해 Apple의 서버에 지속적인 연결을 유지합니다. 항상 켜짐, 매우 낮은 대역폭, 기본적으로 무료.

bird

iCloud Drive의 파일 제공자 데몬. 큰 급증은 iCloud Drive가 데이터를 옮기고 있다는 의미입니다.

assetsd

사진 라이브러리 자산 관리. 종종 clouddphotoanalysisd와 연결됩니다.

잊은 백그라운드 전용 앱

다른 종류의 숨은 프로세스: 의도적으로 Dock에서 숨는 완전한 애플리케이션. 흔한 것:

  • 백업 클라이언트 — Backblaze, Arq, Carbonite, iDrive
  • 안티바이러스 및 EDR — Sophos, CrowdStrike, SentinelOne, Malwarebytes
  • 클라우드 저장소 — Dropbox, Google Drive, OneDrive, Box, Sync.com
  • 하드웨어 유틸리티 — Logitech G Hub, Razer Synapse, OWC 소프트웨어, 모니터 보정 도구
  • 생산성 유틸리티 — Bartender, Hazel, Alfred (낮은 트래픽이지만 존재)
  • 개발자 도구 — Docker Desktop, Colima, JetBrains Toolbox, Tailscale, ngrok

처음 네 범주가 실제 대역폭을 옮기는 것입니다. 백업과 안티바이러스는 특히 초기 동기화나 큰 드라이브를 스캔하는 경우 일일 수십 기가바이트를 옮길 수 있습니다.

그것들을 열거하는 방법

볼 세 곳:

  1. 시스템 설정 → 일반 → 로그인 항목 및 확장. 자동 실행하는 모든 것을 나열합니다. 일부는 UI 없이 백그라운드에서 실행됩니다.
  2. 활성 상태 보기 → 모든 프로세스(보기 메뉴). 이는 사용자 대상 앱뿐만 아니라 전체 목록을 보여줍니다.
  3. 터미널: launchctl list | grep -v com.apple — 서드파티 launchd 작업을 보여줍니다.

그 목록에서 인식하지 못하는 어떤 것이든 5분 조사할 만합니다.

숨은 프로세스에 트래픽 고정하기

대역폭의 앱별 또는 프로세스별 뷰가 있으면 귀속을 위한 워크플로는 다음과 같습니다.

  1. 급증을 발견합니다. 라이브로(메뉴 바가 지금 30Mbps를 보여줌) 또는 과거로(어제 오후 2시, 무언가가 5GB를 사용함).
  2. 급증 동안 상위 프로세스를 찾습니다. 기록이 있는 모니터는 이를 사소하게 만듭니다. 그것 없이는 그것이 일어나는 순간에 보고 있어야 합니다.
  3. 프로세스 이름을 조회합니다. 도우미라면 부모를 찾으세요. 데몬이라면 위의 표를 사용하세요.
  4. 종료하거나 일시 중지하여 확인합니다. 용의자를 일시 중지하면 트래픽이 멈추는 경우, 답이 있는 것입니다.

ova 작동 모습 보기

한눈에 볼 수 있는 메뉴 바 대역폭 모니터 — 로컬, 서명, 약 3MB.

macOS용 다운로드

범인이 시스템 데몬일 때 무엇을 할지

이는 더 까다로운 경우입니다. clouddnsurlsessiond를 종료할 수 없습니다 — 그저 다시 생성될 것이고, 비활성화하면 macOS의 부분이 깨집니다. 적절한 움직임은 원본 앱을 찾고 그것을 일시 중지하는 것입니다.

작업한 예: 4K 비디오로 가득 찬 폰을 가져온 후 한 시간 동안 cloudd가 200Mbps를 업로드하고 있습니다. 원인은 원본을 푸시하는 iCloud 사진입니다. 수정은 다음 중 하나입니다.

  • iCloud 사진 동기화 일시 중지(사진을 열고, 하단으로 스크롤하고, 일시 중지 클릭)
  • 일시적으로 현재 네트워크에서 저데이터 모드로 전환
  • 기다리세요 — 새 원본이 iCloud에 있으면 업로드가 끝납니다

nsurlsessiond의 경우, 단계는 비슷합니다: 어떤 앱이 백그라운드 세션을 예약했는지 알아내세요. 흔한 원본은 App Store / Mac App Store, 음악(구매한 음악 다운로드), 팟캐스트, 그리고 백그라운드 구성으로 URLSession을 사용하는 서드파티 앱입니다.

기준선 만들기

숨은 대역폭 하마는 "정상"이 어떻게 보이는지 알 때 가장 발견하기 쉽습니다. 새 부팅 후, 유휴 동안:

  • 총 처리량은 가는 흐름이어야 합니다 — 메가비트가 아니라 초당 킬로비트
  • apsd, mDNSResponder, 그리고 몇몇 작은 시스템 프로세스가 부드럽게 똑딱일 것입니다
  • 1Mbps 이상의 지속적인 유휴는 조사할 만합니다

ova 같은 앱별 모니터를 정상 사용 동안 며칠 실행하면 Mac의 휴식 심박수를 빠르게 인식할 것입니다. 그 패턴 밖의 어떤 것이든 macOS 대역폭 하마 후보 목록 후보입니다.

실용적인 숨은 하마 감사

이를 한 번 실행하면 대부분 사람들이 개발하려고 신경 쓰는 것보다 더 날카로운 Mac 뷰를 가질 것입니다.

  1. 재부팅합니다. 2분 기다립니다.
  2. ova(또는 앱별 모니터)를 엽니다. 유휴 기준선을 기록합니다 — 어떤 프로세스가 0이 아닌 트래픽을 가지고 있는가?
  3. 시스템 설정 → 일반 → 로그인 항목 및 확장을 엽니다. 실행되는 것과 교차 참조합니다.
  4. 활성 상태 보기 → 보기 → 모든 프로세스 → 네트워크 탭. 보낸 바이트로 정렬합니다. 인식하지 못하는 어떤 것이든 식별하고 조회합니다.
  5. 각 익숙하지 않은 데몬에 대해, 결정합니다: 알려진 양호(apsd, mDNSResponder, iCloud를 사용하면 cloudd) 또는 조사할 만한 것.
  6. 각 백그라운드 전용 앱에 대해: 여전히 원하는지 결정합니다. 원하지 않는 것은 제거합니다.

대부분의 사용자는 이 감사에서 한두 가지 의외를 발견합니다 — 잊은 백업 클라이언트, 반환한 주변기기의 하드웨어 유틸리티, 몇 달 전에 끄려던 클라우드 동기화.

다음에 할 일

앱별 대역폭 모니터를 전혀 실행하지 않고 있다면, 그것이 가장 큰 보상이 있는 변경입니다. 그것 없이는 숨은 하마가 숨은 채 머무릅니다 — 활성 상태 보기의 네트워크 탭은 살기에 너무 번거롭습니다.

구체적인 다음 단계:

  1. ova 또는 다른 앱별 대역폭 모니터를 설치하세요.
  2. 위의 감사를 실행하세요.
  3. 이 페이지를 북마크하거나 데몬 표를 스크린샷하세요 — 매번 nsurlsessiond를 다시 조회하는 것은 짜증납니다.
  4. 매월 다시 확인하세요. 상황은 변합니다. 새 로그인 항목이 추가됩니다.

macOS의 숨은 프로세스는 기본적으로 악의적이지 않습니다. (또는 어떤 앱이) 요청한 일을 하고 있습니다. macOS가 노출하는 대역폭 하마를 찾는 기술은 그것들을 보고, 명명하고, 그 일이 일어나는 것을 여전히 원하는지 결정할 수 있는 것입니다.