CPU·메모리 누수 판별 · CPU 를 읽는다 · 실습
느린 곳을 추측하지 않고 잰다
목표
성능 문제에서 가장 비싼 실수는 틀린 곳을 고치는 것입니다. 눈으로 읽어
"여기가 느릴 것 같다" 를 고르면 대개 빗나갑니다.
여기서는 재고, 읽고, 고치고, 다시 재서 줄었는지 확인합니다.
재료
/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개
- 세 숫자가 무엇을 가르나
- 첫 줄이 고칠 자리는 아니다
- 자기가 오래 걸리나, 남을 오래 부르나
- 고치고 다시 잰다
- 스레드를 늘려도 안 빨라진다
- 같은 도구가 반대로 동작한다
- 다음에 읽을 사람에게