Tracker/notes

MacOS 구조 디버깅: RAM, GPU, 파일시스템

keemnh 2025. 5. 3. 16:39

1. 사양 및 사용환경 (로컬 or 클라우드)

 

1) RAM

메모리 = ram(주기억장치).

  • Apple Silicon은 RAM 납땜식이라 기기마다 고정되어 있고, 바꿀 수 없음
  • 컴퓨터가 작업 중인 데이터를 담아두는 공간, 실행중인 프로세스의 작업공간
  • cpu의 메모리
  • 동시실행 + 무겁고 큰 프로그램 돌리면 ram이 클수록 좋음
  • 휘발성 메모리 (작업 중 임시 보관소)
  • SSD(Hard Disk): 비휘발성 저장소 (파일, 앱, 데이터 저장)
  • RAM이 부족하면? → 스왑(Swap) 발생
    • 운영체제는 RAM이 다 찼을 때 일부 작업 메모리를 SSD에 “임시로 저장”해서 RAM처럼 씀 → 이걸 가상메모리라 함
    • 가상 메모리’ 또는 ‘스왑’이라 하고, SSD 속도가 느려서 성능 저하 발생하니까 SSD 크기도 중요한 것임.
  • 저장공간은 1/3 남겨야 한다는 말은 어느정도 맞다
RAM 용량 적합 용도
8GB 가벼운 문서작성, 브라우징, 유튜브, 노션
16GB 개발(웹, 파이썬), 포토샵, 멀티태스킹, 작은 LLM
18~24GB VSCode + Jupyter + Docker + 모델 추론 정도 충분
32GB+ 대형 모델, 영상 편집, 트랜스코딩, AI 학습까지 가능
64GB+ LLM 학습, 3D 그래픽, 대규모 병렬 연산 등

 

2) SSD (하드디스크 저장공간)

  • SSD(Hard Disk): 비휘발성 저장소 (파일, 앱, 데이터 저장)
  • 처음 앱 설치할 때 HD로 저장됨(하드디스크 저장공간)
  • → 실행하면 ram으로 올라감. 올라가야 cpu, gpu가 계산하고 화면에 나타냄 (Apple Silicon)
  • 과거엔 HDD 사용 → 현재는 대부분 SSD
  • ssd가 근데 사실 새로운 하드디스크라, 이름이 하드디스크여도 대부분 SSD임
구분 HDD SSD
Hard Disk Drive Solid State Drive
구조 자기 디스크에 물리적 헤드로 읽음 전자 회로 기반 메모리로 읽음
속도 느림 매우 빠름
소음 있음 없음
현재 거의 사라짐 대부분의 노트북/맥북 기본 탑재

 

 

 

3) Apple Silicon

  • Apple Silicon: CPU, GPU, RAM 통합 구조 (UMA)임 RAM안에서 다 돌아감
    • Apple M1~M3 계열은 RAM이 분리되어 있지 않음
    • 근데 삼성 갤북 같은 건 CPU, GPU, RAM, SSD가 모두 물리적으로 따로 존재함

 

 

4) CPU, GPU

  • cpu와 gpu
    • cpu는 복잡하고 깊은 연산 하나를 깊이있게 잘함.
    • gpu는 단순하지만 수천개 연산을 병렬적으로 하는 거. (이미지 필터, 딥러닝, LLM 추론, 행렬 곱셈 등) → llm 훈련의 키임
항목 CPU GPU
목적 범용 계산 (일반적 계산 처리) 병렬 계산 (동시에 반복 계산)
구조 4~16개의 강력한 코어 수백~수천 개의 단순한 코어
적합 작업 프로그램 실행, OS 동작, 로직 처리 행렬 계산, 이미지 렌더링, 신경망 추론
예시 엑셀 계산, 웹서버, 컴파일 영상 렌더링, LLM, 딥러닝, DNN

 

항목 CPU 코어 GPU 코어
목적 범용 계산 (조건 분기, 로직, 운영체제 등) 동일한 계산을 대량으로 병렬 처리
코어 수 적음 (4~16개) 많음 (16~4096개 이상)
연산 방식 직렬 + 일부 병렬 대규모 병렬 특화
적합 작업 문서, 웹브라우징, 일반 코드 실행 딥러닝, 이미지 처리, 벡터 행렬 곱
예시 GPT API 연결 코드, 시스템 명령 LLM 추론, 이미지 스타일 변환

 

  • gpu 코어란
    • gpu 내부의 작은 연산 유닛
    • 계산기 여러 개가 병렬적으로 돌아가는 거랑 비슷함
      • 18코어 = NVIDIA RTX 3050~3060 중간급 성능
GPU 코어 수 대략 용도
8-core (M1) 영상 편집, 게임 수준, 기초적인 ML 추론
10-core (M2) 기본 AI inference, 영상 렌더
14-core (M2 Pro) 복잡한 이미지 연산, multi-model 추론
18-core (M3 Pro) 대형 이미지 생성, LLM 추론, 트랜스포머 기반 모델
30~40-core (M3 Max) 다중 LLM 추론, 영상 합성, 고속 모델 병렬처리
64-core (M2 Ultra) AI 학습/추론, 서버급 처리 가능

 

  • VRAM이란
    • 맥북은 통합RAM이라 둘이 구분되어 있진 않음. 18GB면 6~8정도 쓰일 수 있음
    • gpu 전용 메모리
    • cpu 전용 메모리는 RAM임
    • metal에서 자동분배됨
    • 예: NVIDIA A100 → 80GB VRAM → 훈련 중 모델 파라미터, 중간 연산값, 그래디언트 등을 저장할 공간

 

  • 메모리 대역폭
    • 초당 메모리에 접근할 수 있는 속도 (GB/s)
    • 대역폭이 클수록 GPU가 빠르게 데이터 로딩해서 연산 가능

 

 

 

5) LLM local 훈련

→ full-training:

  • GPT처럼 새로운 모델을 처음부터 만드는 것,
  • 백지 상태에서 모델의 모든 weight를 처음부터 학습시키는 거

→ fine-tunning:

  • 이미 학습된 모델(GPT-2, LLaMA 등)을 가져와서
  • 내 데이터에 맞게 조금만 조정
  • 전체 weight를 바꾸지 않음 or 일부분만 바꿈 (예: LoRA)
  • 훨씬 가볍고 빠름, RAM·VRAM 덜 씀
  • 사용 툴
    • PyTorch: 가장 대중적인 딥러닝 프레임워크. 대부분의 LLM 구현도 이 위에서 돌아감
    • Hugging Face Transformers: LLM, NLP 모델 라이브러리. 모델 다운로드, 파인튜닝, 추론 모두 가능
    • LoRA, PEFT: 경량화된 파인튜닝 도구. 작은 GPU 자원에서도 LLM fine-tuning 가능
    • wandb, TensorBoard: 학습 과정을 시각화하거나 기록 관리
  • 가능한 사양
    • 예: LLaMA 2 7B를 Low-rank fine-tuning (LoRA 방식)
      • GPU VRAM 최소 24GB 이상
      • RAM 32~64GB
      • SSD는 1TB 이상이 좋지만, 압축된 데이터만 돌릴 거면 512GB도 가능
      • CPU는 12코어 이상, 최신 세대일수록 좋음
      • 쿨링 성능 아주 중요
    • 예시 기종 (현실적인 범위)
      • Windows 데스크탑 + RTX 3090 or 4090 GPU (VRAM 24~24+ GB)
      • Linux 워크스테이션 + AMD CPU + NVIDIA A6000 or RTX 6000 Ada
      • 노트북 중에선 일부 고사양 게이밍 노트북 (예: ASUS ROG Zephyrus RTX 4080 / 64GB RAM 모델 등)
    • 일반적인 노트북 (Mac 포함)이나 RTX 30503060급 GPU로는 full 훈련 힘듦
    • 추론 or 경량 fine-tune (510 epoch, 100MB 이하 데이터셋)만 가능
  • 최소 사양
항목 권장 사양
GPU NVIDIA RTX 4090 (24GB VRAM) 이상
RAM 최소 32GB (64GB 이상 권장)
SSD 최소 1TB (고속 NVMe SSD)
CPU 12코어 이상 (Intel i9, AMD Ryzen 9 등)
전원/쿨링 고성능 쿨링 필수 (발열 엄청남)
OS Linux (Ubuntu) or Windows with CUDA 지원

 

 

 

6) 로컬 - 워크스테이션 노트북 

  • 일반 노트북보다 전문 작업을 위한 고성능 사양을 갖춘 노트북 - (연구, 그래픽, AI 훈련)
    • 고성능 GPU (예: NVIDIA RTX A5000, RTX 4090 Laptop 등)
    • CPU도 12~16코어급 (Intel i9, Xeon, Ryzen 9 등)
    • RAM 32~128GB 탑재 가능
    • SSD도 대용량 + 고속 NVMe
    • 발열 제어를 위해 두껍고 무겁고 팬이 큼 (그래서 “랩탑형 데스크탑” 느낌)
    • 가격: 보통 300만 원~700만 원 사이
  • 대표 브랜드:
    • Dell Precision
    • Lenovo ThinkPad P 시리즈
    • HP ZBook
    • ASUS ROG Zephyrus (게이밍 + 연구용 중간형)

 

 

7) 클라우드

  • LLM 훈련 방법
    1. 예: AWS EC2 인스턴스 (GPU 장착 서버)를 하나 생성
    2. 그 서버에 SSH 접속 (macOS 터미널에서 ssh 명령어 사용)
    3. 그 서버에 Anaconda, PyTorch, CUDA, git 등을 설치
    4. git clone으로 훈련 코드를 내려받고 실행
    5. 훈련 도중 wandb나 tensorboard로 학습 상태 확인
    • SSH 접속: 사용자의 터미널에서
    • VSCode remote SSH: GUI 편하게 쓰려면
    • Python + PyTorch (혹은 TensorFlow)
    • CUDA, cuDNN: GPU 가속용 드라이버
    • Hugging Face Transformers or OpenLLM: LLM 훈련용
  • 환경 비교
    • 입문/과제/연구 실험 = Colab Pro
    • 대형 훈련 or 실제 논문 재현 = AWS, Lambda Labs, RunPod
    • 비용 아끼며 GPU 체험 = Paperspace, Vast.ai
서비스 장점 단점 추천 용도
Google Colab Pro / Pro+ 저렴, 사용 편리, 코드 공유 쉬움, 초보자 친화적 제한된 연속 사용 시간, 자원 배정 랜덤, 대기 생김 입문자, 과제 실험, 파인튜닝, 논문 재현
Kaggle Notebook 무료, GPU 제공, 커뮤니티 기반 자원/시간 제한 많음 간단한 테스트, 분석용
Paperspace Gradient Jupyter 기반 인터페이스, 자동 설정 무료는 느림, 유료는 과금 세심히 관리해야 중급자용 실험
AWS EC2 (SageMaker 포함) 강력한 GPU 인스턴스(A100, H100), 유연한 환경 구성 세팅 복잡, 요금 비쌈 본격적인 훈련, 논문급 실험
GCP Vertex AI 구글 생태계 연동, TPU 사용 가능 다소 어렵고 복잡함 TPU 실험, 고성능 LLM 실험
Lambda Labs / RunPod / Vast.ai 저렴한 GPU 임대, 자유도 높음 보안/안정성은 조금 부족 GPU 훈련 집중 실험

 

 

 

2. activity monitor

 

1) 구조

  • CPU 탭
    • 갑자기 팬이 도는 이유 / 시스템이 느려지는 원인 추적 가능
    • 예: Python, Docker, WebRenderer가 %CPU 200 이상이면 병목
    • 어떤 앱이 CPU를 얼마나 쓰고 있는지
    • 메모리 압력 그래프: 초록 → 정상 / 노랑 → 위험 / 빨강 → 터지기 직전
    • swap이 1GB 이상이면 RAM 부족 증상 시작
    • 총 메모리 사용량 / 캐시 / swap 발생 여부메모리(RAM) 탭 

 

  • 에너지 탭
    • 특히 실험할 때 충전기 없이 돌릴 경우 체크해야 함
    • “에너지 영향도”가 높은 앱이 있으면 의심 대상
    • 어떤 앱이 배터리를 가장 많이 소모하는지
  • 디스크 탭
    • 이미지 저장, 시각화, 다운로드 많은 실험에서 중요
    • SSD가 부족할 때 병목 원인 추적에 쓰임
    • 어떤 앱이 SSD를 많이 읽고/쓰는지
  • 네트워크 탭
    • GPT API, HuggingFace, Colab, GitHub 통신량 파악 가능
    • 어떤 앱이 데이터를 얼마나 주고받는지
상황 어디 봐야 함 뭘 확인해야 함
맥북이 느려짐 메모리 탭 swap 사용량 / 메모리 압력 그래프
팬이 심하게 돌음 CPU 탭 어떤 앱이 CPU 100% 넘게 먹고 있음
배터리가 빨리 닳음 에너지 탭 에너지 영향도 높은 앱 찾아내기
시각화할 때 멈칫거림 디스크 + 메모리 탭 읽기/쓰기 속도 급증 / swap 발생
GPT API 자꾸 멈춤 네트워크 탭 네트워크 대역폭 누가 먹고 있나

 

 

2) 메모리 세부사항 (사용중인 RAM)

  1. 물리적 메모리 (Physical Memory) → 내 맥북에 실제로 장착된 RAM 용량 (예: 18GB)
  2. 사용된 메모리 (Memory Used) → 현재 실행 중인 앱/프로세스가 RAM에서 차지하고 있는 총량 (앱 실행 시 코드, 변수, 데이터가 여기 올라감)
    • 앱 메모리 (App Memory)
      •  예: Python 코드 돌릴 때, VSCode·Jupyter·Python이 차지하는 영역
      • 실행 중인 앱이 직접 사용하는 메모리
    • 와이어드 메모리 (Wired Memory)
      • GPU 드라이버, 시스템 커널 등
      • 사용자 입장에선 건드릴 수 없음
      • 시스템 핵심 기능이 절대 빼앗기지 않게 “고정(wired)”시켜둔 메모리
    • 압축됨 (Compressed)
      • 예: 1GB짜리 메모리 덩어리를 400MB로 압축해서 남은 공간 확보
      • 압축 비율 높아지면 시스템 숨 막히는 증상 생김
      • RAM 부족 시, macOS가 “일부 메모리를 압축해서 공간을 벌어놓은 상태”
  3. 캐시된 파일 (Cached Files)
    • 사용자가 전에 열었던 앱, 이미지, 페이지 등을 시스템이 ‘혹시 또 쓸까 봐’ RAM에 남겨둔 것
    • 필요하면 바로 비워서 다른 작업에 RAM 재할당 가능
    • RAM 절약이 아니라 “빠르게 열기 위한 메모리 여유분”
  4. 사용된 스왑공간 (Swap Used)
    • RAM이 꽉 차서 부족할 때, SSD 공간 일부를 RAM처럼 빌려쓰는 영역
    • 생기면 속도 급격히 느려짐 (SSD는 RAM보다 훨씬 느림)
    • ideal: 0GB / 경고: 1GB 이상 / 위험: 3GB 이상
용어 의미
물리적 메모리 실제 장착된 RAM 용량
사용된 메모리 지금 쓰고 있는 총 RAM 양
캐시된 파일 자주 쓰는 걸 RAM에 남겨둔 것
스왑공간 RAM 부족 시 SSD로 대체한 RAM
앱 메모리 앱이 직접 사용하는 메모리
와이어드 메모리 시스템 고정 메모리 (필수, 못 빼앗김)
압축됨 RAM 부족해서 메모리 압축함
스레드 앱 내부의 병렬 작업 단위
메모리 압력 RAM 여유 여부 직관적 그래프

 

 

 

3. MacOS 파일시스템

 

1) 파일 구조

경로 역할 요약
/System, /Library, /Applications macOS 시스템 영역
/Users 사용자 홈 디렉토리
/opt 외부 패키지 (예: Homebrew) 설치 위치
/Volumes 마운트된 USB/디스크 등
/private, /tmp, /var 임시파일, 로그 등 백엔드 작업용
/usr, /bin, /sbin 저수준 유틸리티 및 명령어들 저장 위치
/etc 설정 파일들 (예: hosts)

 

 

2) 숨겨진 파일 처리

  • Finder에서 Command + Shift + .로 숨김 파일 보기 활성화
  •  .file, .vol, .resolve, .DS_Store 등 나타남
  • /Users/공유/Previously Relocated Items/ 안에는 macOS 업데이트 시 이동된 이전 시스템 파일들이 숨어있었음.
  • /opt/homebrew/는 Homebrew로 설치한 툴들이 깔려 있던 루트 디렉토리였음

 

3) 100% 삭제하는 게 중요

도커(Docker), VSCode 확장, Python 가상환경, Parallels 등:

  • /Library/Preferences/, ~/Library/Application Support/, ~/Library/Containers/ 등에 잔여 파일이 남아 있었음
  • find / -iname "*docker*" 명령어로 남은 흔적들 스캔 가능
  • AppCleaner 같은 앱을 사용하는 것도 방법. 그러나 이거는 삭제 후에도 남은 애들을 찾아주는 기능은 지원하지 않음.

 

4) 폴더시스템과 하드웨어 리소스

  • 앱을 실행하면 하드디스크(SSD)에 저장된 실행파일이 RAM으로 올라와 실행됨
  • RAM은 “실행 중인 정보”가 저장되는 공간
  • Mac은 통합 메모리 구조라 RAM이 CPU·GPU 양쪽 모두 공유됨
  • Activity Monitor에서 보면 앱 메모리, 캐시된 파일, 압축된 메모리, 스왑 등 다양한 상태가 구분됨