홈 › 실무 확장 › 22 / 22

성능 측정: p50·p95·p99, 측정 계층, JFR, JMH 함정, 자체 부하 테스트, 병목 순위

섹션 7진행 0 / 22

7. 정리

성능 개선은 측정 → 위치 파악 → 원인 확인 → 수정 → 재측정 순서를 지켜야 합니다. 감으로 고치면 문제를 옮길 뿐 없애지 못합니다.

응답 시간은 평균이 아니라 p50·p95·p99 로 봐야 소수의 느린 요청을 놓치지 않습니다. TPS·에러율·자원 사용량을 함께 봐야 병목의 방향을 좁힐 수 있습니다.

JFR 은 JDK 내장이라 폐쇄망에서도 별도 반입 없이 프로덕션에 켤 수 있고, 오버헤드도 1~2% 로 작습니다. jfr print 로 GUI 없이 텍스트만으로 CPU·할당·락·GC 이벤트를 분석할 수 있습니다.

마이크로 벤치마크는 워밍업 부족과 죽은 코드 제거라는 두 가지 함정에 특히 취약합니다. JMH 는 이를 표준화한 도구지만 폐쇄망에서는 jar 반입이 필요해, 문법만 익혀두고 필요할 때 반입합니다.

부하 테스트 도구가 없어도 HttpClient 와 스레드 풀만으로 동시 요청·p95·TPS 를 직접 잴 수 있습니다. 흔한 병목은 N+1 쿼리·인덱스 부재·커넥션 풀 고갈·동기 외부 호출·로그 과다·GC 순으로 나타나므로, 이 순서대로 의심하면 헛수고를 줄일 수 있습니다. JVM 내부는 고급 10 레슨, 서버 자원 관점은 리눅스 운영 09 레슨을 함께 참고하세요.