LabHub
배우기 러닝패스 코스

CPU·메모리 누수 판별 · CPU 를 읽는다 · 실습

느린 곳을 추측하지 않고 잰다

LabHub 에서 이어서 보기

목표

성능 문제에서 가장 비싼 실수는 틀린 곳을 고치는 것입니다. 눈으로 읽어
"여기가 느릴 것 같다" 를 고르면 대개 빗나갑니다.

여기서는 재고, 읽고, 고치고, 다시 재서 줄었는지 확인합니다.

재료

/opt/lab/perf/slowapp.py   느린 곳이 어디인지 눈으로는 안 보이는 프로그램/opt/lab/perf/iowork.py    같은 일을 순차·스레드·프로세스로 해 보는 프로그램

먼저 작업 디렉터리로 가져옵니다.

mkdir -p /root/perf && cp /opt/lab/perf/* /root/perf/ && cd /root/perf

남길 것

01-time.txt      real·user·sys02-tottime.txt   자체 시간 순03-cumtime.txt   누적 시간 순04-fix.txt       고치기 전과 후05-gil.txt       CPU 바운드: 순차·스레드·프로세스06-wait.txt      기다리는 일: 순차·스레드07-notes.md      왜 그런지

단계 7개

  1. 세 숫자가 무엇을 가르나
  2. 첫 줄이 고칠 자리는 아니다
  3. 자기가 오래 걸리나, 남을 오래 부르나
  4. 고치고 다시 잰다
  5. 스레드를 늘려도 안 빨라진다
  6. 같은 도구가 반대로 동작한다
  7. 다음에 읽을 사람에게