실무로배우는시스템성능최적화...
TRANSCRIPT
실무로 배우는시스템 성능 최적화Ch1. 성능 기초
아꿈사Cecil
•성능이란 ?•성능 특성•성능 이론•성능 테스트
1.1 성능이란 ?
•시간당 처리량•주요 영향 요인
•응답 시간•동시에 처리할 수 있는 프로세스 수
•고객의 업무 특성과 아키텍처에 따라 다름
동시 사용자
시스템에 접속을 유지하고 있는 사용자요청 사용자 + 비 요청 사용자
처리량
일정 시간 내에 처리한 트랜잭션의 양 (TPS)실행 주체에 따라 트랜잭션이 다름
(ex: API 서버일 경우 API 호출 횟수 )
응답 시간
성능 개선을 위해서는 처리 시간 세분화가 필요
백분율 응답 시간 그래프
• 사용자중 일정 비율은 제시된 시간에 응답을 받는 것을 확인• 예외적인 상황에서 응답 시간을 성능평가에서 제외할 목적
자원자원은 사용량 변화에 따라 성능에 영향을 미치는 요소
적정성 , 효율성 , 안정성 , 가용성 , 확장성을 기준으로 평가
1.2 성능 특성
성능 곡선
자원에 대한 경합 발생 구간시스템의한계 상황
성능에 대한 이해•업무와 시스템 특성에 따라 다름•모든 경우에 적용할 수 있는 응답 기준은 없음•동시 사용자 수가 시스템 성능을 의미하지는 않음•시스템 성능은 비용과 수익으로 평가가 가능
1.3 성능 이론
서비스 요청 간격 = 응답 시간 + 생각 시간동시 사용자 수 = 요청 사용자 수 + 비 요청 사용자 수
리틀의 법칙처리량 (TPS) = 서비스 처리 건수 / 측정 시간( 초 ) = 요청 사용자 수 / 평균 응답시간( 초 ) = 동시 사용자 수 / 서비스 요청 간격 ( 초 )
• 시간당 1,000,000 건의 카드 승인을 처리하는 시스템•1,000,000 / 3,600 = 278 TPS
•요청 사용자수 100 명 , 평균 응답시간 2 초•100 / 2 = 50 TPS
•동시 사용자수 3000 명 , 평균 30 초 마다 입력•3,000 / 30 = 100 TPS( 이정도의 처리량이
필요 )
• 요청 사용자 수 = 동시 사용자 수 * ( 평균 응답시간 / 서비스 요청 간격 )
= 동시 사용자 수 * ( 평균 응답시간 / ( 평균 응답시간 + 생각 시간 )
• 평균 응답시간 = ( 동시 사용자 수 / 처리량 ) - 생각시간 ex) 동시 사용자가 600 명일때 처리량이 20TPS, 응답시간이 3초라면 - 평균 응답시간 : (600 /20) - 3 = 27 초 .
사용률 이론서비스 시간과 처리량을 기반으로 자원 사용률을 계산단일 자원 사용율 = 사용 시간 / 측정 시간
- 처리량 = 서비스 건수 / 측정 시간 => 측정 시간 = 서비스 건수 / 처리량
- 서비스 시간 = 사용 시간 / 서비스 건수 => 사용 시간 = 서비스 건수 * 서비스 시간
- 즉 , 단일 자용 사용율 = 처리량 * 서비스 시간 ex) CPU 가 초당 100 개씩 처리 , 1 개 처리하는데 1.5ms 소요할 경우 사용율 : 100 * 0.0015 = 15%
비율 분석A 블록과 B 블록의 전체 처리량 = 요청 사용자수 / (A 응답시간 + B 응답시간 ) = 1 / ((1 / A 처리량 ) + (1 / B 처리량 )
업무 서비스 요청 비율을 고려 할 경우 = 1 / ((A 요청 비율 / A 처리량 ) + (B 요청 비율 / B 처리량 )ex) A: 20TPS 초당 15 개 요청 발생 , B: 20TPS 초당 5 개 요청 발생 전체 처리량 = 1 / (0.75/20 + 0.25/200) = 25.8 TPS
1.4 성능 테스트
성능 테스트 유형
성능 , 과부하 , 안정성 , 최적화 ,
가용성 , 실사용자 , 벤치마크 , 파일럿
성능 테스트 구성 요소
부하 모델 , 업무 시나리오 , 테스트 데이터 ,
적용 부하 , 테스트 환경 , 평가 기준 , 측정 항목 ,
부하 발생기 , 가상 사용자 , 테스트 스크립트
성능 테스트 시 주의 사항• 테스트 데이터
• 운영과 동일한 다양성을 갖추고 , 동일한 양을 가지고 테스트• 화면 처리 시간
• 성능 테스트와 별도로 중요 화면에 대한 응답시간을 확인• 네트워크
• 실제 사용자가 어디에 위치할 것인지 확인• 가상 사용자 특성
• 가상 사용자와 실 사용자가 다른 패턴을 보이는 경우가 있음• 업무 시나리오
• 실제 시나리오를 가장한 테스트가 필요 (ex: 배치 작업 수행중 )
• 성능 테스트는 오픈 전까지 지속적으로 이루어져야 함
References
•권문수 . 실무로 배우는 시스템 성능 최적화 . 경기도 파주시 위키 북스 , 2016.