암달의 법칙
- 1 Core에서 20시간 소요되는 작업 중 1시간은 절대 개선할 수 없다면, 20배 이상의 성능 향상은 불가능
- 성능 개선율
- 1/((1-P) + P/S)
- P는 개선 가능한 부분의 비율 / 개선 가능한 부분이 100% => 1
- S는 개선된 정도 / 2배의 성능 향상이 이루어 졌다면 S = 2
성능 튜닝 step by step
- 원인 파악
- 어디가 병목인지 확실히 파악
- 목표 설정
- 성능 개선뿐만 아니라, 향후 유지보수까지 모두 고려해서 목표를 설정
- 튜닝 실시
- 코드를 최적화하며 튜닝
- 개선율 확인
- 결과가 만족스럽지 않은 경우에는 '튜닝 실시' 단계록 다시 넘어가서 진행
- 결과 정리 및 반영
- 되도록 꼭 필요한 사항들만 정리
성능 튜닝의 비법
- 하나만 보지 말아라
- 병목의 대상
대상 | 세부 대상 |
서버 장비 | CPU, Network, Disk, Memory 등 |
서버 OS | OS 커널, OS 설정, 수행중인 프로세스 |
자바 애플리케이션 | 스레드 풀 설정, DB Connection Pool 설정, Cache 설정, GC 설정, HEAP 크기 설정, 검증되지 않은 프레임워크의 버그, 개발된 애플리케이션 등 |
웹 서버 | 사용자의 네트워크의 종류, 사용자의 위치, L4 및 Switch 등 네티워크 장비, 방화벽 등 |
네트워크 | 사용자의 네트워크의 종류, 사용자의 위치, L4 및 Switch 등 네트워크 장비, 방화벽 등 |
클라이언트 | 클라이언트 장비의 CPU, Network, Disk, Memory, OS 등의 성능, 클라이언트 애플리케이션, 클라이언트 장비에서 수행 중인 프로세스 등 |
- 큰 놈을 없애라
- 깊게 알아야 한다
- 결과 공유는 선택이 아닌 필수
- 결과 정리를 할 때 꼭 포함되어야 하는 내용
- 개요 : 튜닝을 실시한 배경
- 튜닝 환경 : 튜닝을 실시하고 성능을 측정한 서버 및 툴에 대한 상세한 내용
- 튜닝 결과 : 튜닝 전과 후의 결과를 비교
- 결론 : 어느 부분을 어떻게 변경하는 것이 가장 큰 효과를 줄지, 튜닝 작업을 진행한 담당자의 의견등을 포함
- 유의 사항
- 확실한 결과 위주로 포함하자
- 개선 효과가 큰 것부터 나열하자
- 개발한 사람의 심기를 나쁘게 하지 말자
- 결과 정리를 할 때 꼭 포함되어야 하는 내용
'개발서적 > 자바 성능 튜닝 이야기' 카테고리의 다른 글
[자성튜이] 애플리케이션에서 점검해야 할 대상들 (1) | 2024.09.17 |
---|---|
[자성튜이] 반드시 튜닝해야 하는 대상 (0) | 2024.09.16 |
[자성튜이] GC 발생 시점 (0) | 2024.09.16 |
[자성튜이] JVM은 도대체 어떻게 구동될까 (0) | 2024.09.16 |
[자성튜이] 서버를 어떻게 세팅해야 할까? (1) | 2024.09.16 |