스타일 변환 리소스 사용률 테스트 - 100-hours-a-week/5-yeosa-wiki GitHub Wiki

스타일 변환 gpu 사용률 체크(코랩 환경)

  • base cpu 스펙(물리코어1개, vCPU(스레드) 2개)

    Architecture:             x86_64
      CPU op-mode(s):         32-bit, 64-bit
      Address sizes:          46 bits physical, 48 bits virtual
      Byte Order:             Little Endian
    CPU(s):                   2
      On-line CPU(s) list:    0,1
    Vendor ID:                GenuineIntel
      Model name:             Intel(R) Xeon(R) CPU @ 2.00GHz
        CPU family:           6
        Model:                85
        Thread(s) per core:   2
        Core(s) per socket:   1
        Socket(s):            1
        Stepping:             3
        BogoMIPS:             4000.41
    

gpu: Tesla T4 1개

메모리: 13290452 kB (대략 13.3GB)

1. Stable Diffusion WebUI 시작 시 (SD WebUI Startup)

리소스 사용 추이 요약:

리소스 초기값 → 최고값
CPU 4~74% (단발성 고점)
메모리 10.2% → 16.2%
GPU 메모리 0 → 102MB
GPU Load 0% 고정
디스크 사용량 42.24 → 45.18GB (약 3GB 증가)

의미 분석:

  • 대부분의 부하가 CPU에서 발생: 로딩 과정에서 Python 모듈, 모델 weight 파일, ControlNet 스크립트 등이 처리됨.
  • GPU 메모리는 거의 사용되지 않음: 아직 이미지 생성이 시작되지 않아 모델만 로드된 상태.
  • 디스크 사용량은 모델 및 캐시 적재로 소폭 증가 (약 3GB).

즉, 이 단계는 시스템 초기화 + 모델 준비 단계이며, GPU는 거의 놀고 있는 상태임.


2. 이미지 생성 요청 처리 시 (On Request)

리소스 변화 추이:

시점 CPU MEM GPU Load GPU Mem
요청 직후 2~63% 18.4% → 22.9% 0% 2800MB
요청 처리 중 43% → 94.5% 22.6% 6~32% 2960MB
처리 완료 후 2~6% 22.9% 0% 2984MB

🔍 의미 분석:

  • GPU 활성화 시작: 요청 직후 GPU Mem: 2800MB, 처리 중에는 GPU Load: 6~32%, 안정적으로 생성에 GPU가 투입됨.
  • CPU usage도 90%대까지 치솟음: ControlNet 전처리, 이미지 후처리, 이미지 저장, mediapipe_face 프리프로세서 등이 CPU 의존도가 높기 때문.
  • 메모리도 7%가량 증가: 15% → 22.9% 가량으로 SD+ControlNet 모델들 로딩 완료 후 inference 처리에 필요한 메모리 사용 증가.
  • GPU 메모리는 고정 유지: 한 번 로딩되면 이후 재사용 → 이후 요청 시 훨씬 빠르게 처리 가능.

핵심 요약 (전체 흐름 분석)

구분 내용
초기 구동 단계 CPU 중심 로딩 (Torch/Gradio/Weights 등), GPU는 idle
요청 전송 시 GPU 메모리 급증, Load 활성화 시작, CPU도 동시 병렬 처리
요청 처리 중 GPU Load 및 메모리 피크, CPU도 90% 이상까지 치솟음
요청 종료 후 CPU/GPU 모두 안정, GPU 메모리는 남아 있음 (캐시 상태)
  • 요청 1개당 최대 사용량
    • vCPU 2대 평균 94.5%
    • 메모리 23%(3.0GB)
    • GPU 1대 32%
    • GPU 메모리 3000MB(대략 3GB)