Notice
Recent Posts
Recent Comments
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Chimy's Program

정보처리기사 실기 - 애플리케이션 테스트 관리 : 애플리케이션 성능 분석 본문

BASE

정보처리기사 실기 - 애플리케이션 테스트 관리 : 애플리케이션 성능 분석

chimy 2020. 7. 30. 22:36

정보처리기사 실기 - 애플리케이션 테스트 관리 : 애플리케이션 성능 분석

 

애플리케이션 성능 점검의 개요

 

  • 애플리케이션 성능 : 사용자의 요구 기능을 해당 애플리케이션이 최소의 자원을 사용하면  얼마나 빨리많은 기능을 수행하는가를 육안 또는 도구를 통하여 점검

 

애플리케이션의 성능을 측정하기 위한 지표

 

(1) 처리량(Throughput) 

 

  • 애플리케이션이 주어진 시간에 처리할  있는 트랜잭션의 
  •  애플리케이션의 경우 시간당 페이지 수로 표현

 

⁠(2) 응답 시간(Response Time) 

 

  • 사용자 입력이 끝난 애플리케이션의 응답 출력이 개시될 때까지의 시간
  •  애플리케이션의 경우 메뉴 클릭  해당 메뉴가 나타나기까지 걸리는 시간

 

(3) 경과 시간(Turnaround Time) 

 

  • 애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션 처리   결과의 출력 완료할 때까지 걸리는 시간

 

(4) 자원 사용률(Resource Usage) 

 

  • 애플리케이션이 트랜잭션 처리하는 동안 사용하는 CPU 사용량메모리 사용량네트워 사용량

 

유형별 성능 분석 도구 

 

  • 성능 분석 도구는 애플리케이션의 성능을 점검하는 도구와 시스템 자원 사용량을 모니터 링하는 도구로 분류

 

(1) 성능/부하/스트레스(Performance/Load/Stress) 점검 도구

 

  • 애플리케이션의 성능 점검을 위해 가상의 사용자를 점검 도구 상에서 인위적으로 성한 시스템의 부하나 스트레스를 통해 성능 측정 지표인 처리량응답 시간경과 시간 등을 점검하기 위한 도구

 

⁠(2) 모니터링(Monitoring) 도구 

 

  • 애플리케이션 실행  자원 사용량을 확인하고 분석 가능한 도구
  • 성능 모니터링성능 저하 원인 분석시스템 부하량 분석장애 진단사용자 분석 산정 등의 기능을 제공시스템의 안정적 운영을 지원하는 도구

 

 

애플리케이션 성능 저하 원인 분석

 

  • 애플리케이션의 성능이 저하되는 원인은 크게 DB 연결  쿼리 실행내부적인 요인과 외부적인 요인, 기타 환경 설정이나 네트워크 등의 문제로 구분

 

데이터베이스 연결  쿼리 실행  발생되는 성능 저하 원인 

 

  • 일반적으로 DB 연결하기 위해 Connection객체를 생성하거나 쿼리를 실행하는 애플리케이션 로직에서 성능 저하 또는 장애가 많이 발견

 

(1) 데이터베이스 (DB Lock)

 

  • 대량의 데이터 조회과도한 업데이트인덱스 생성  발생하는 현상
  • 요청한 업은 Lock 해제 시까지 대기하거나 타임아웃

 

(2) 불필요한 데이터베이스 패치(DB Fetch)

 

  • 실제 필요한 데이터보다 많은 대량의 데이터 요청이 들어올 경우 또는 결과 세트에서 마지막 위치로 커서를 옮기는 작업이 빈번한 경우 응답 시간 저하 현상이 발생

 

(3) 연결 누수(Connection Leak)/부적절한 커넥션  크기(Connection Pool Size)

 

(연결 누수(Connection Leak)

 

  • DB 연결과 관련한 JDBC 객체를 사용  종료하지 않을 경우 발생

 

(부적절한 커넥션  크기(Connection Pool Size) 

 

  • 너무 작거나 크게 설정한 경우 성능 저하 현상이 발생

 

(4) 기타 

 

  • 트랜잭션이 확정(Commit)되지 않고 커넥션 풀에 반환되거나 잘못 작성된 코드로 인해 불필요한 Commit 자주 발생하는 경우 성능이 저하될 가능성이 존재

 

내부 로직으로 인한 성능 저하 원인 

 

(1)  애플리케이션의 인터넷 접속 불량 

 

  •  애플리케이션의 실행  인터넷 접속 불량으로 서버 소켓(Server Socket) 쓰기는 지속되나 클라이언트에서 정상적 읽기가 수행되지 않아 성능 저하 가능

 

(2) 특정 파일의 업로드/다운로드로 인한 성능 저하 

 

  • 대량의 파일을 업로드하거나 다운로드할 경우 처리시간이 길어져 애플리케이션의 능이 저하 가능

 

(3) 정상적으로 처리되지 않은 오류 처리로 인한 성능 저하 

 

  • 오류 처리 로직과 실제 처리 로직 부분을 분리하지 않고 코딩하거나 예외가 발생할 경우에 제대로 처리되지 않아 행이 걸리는 상황이 발생하여 성능 저하 가능

 

외부 호출(HTTP, 소켓 통신) 인한 성능 저하 원인 

 

  • 임의의 트랜잭션이 수행되는 동안 외부 트랜잭션(외부 호출) 장시간 수행되거나 타임아웃이 일어나는 경우 성능 저하 현상이 발생

 

잘못된 환경 설정이나 네트워크 문제로 인한 성능 저하 원인

 

(1) 환경 설정으로 인한 성능 저하

 

  • 스레드 (Thread Pool),  메모리(Heap Memory) 크기를 너무 작게 설정하면 Heap Memory Full 현상 발생으로 성능 저하

 

⁠(2) 네트워크 장비로 인한 성능 저하

 

  • 라우터, L4 스위치  네트워크 관련 장비  데이터 전송 실패 또는 전송 지연에 따른 데이터 손실 발생  애플리케이션의 성능 저하 또는 장애 발생

 

 

애플리케이션 성능 분석 수행

 

① 애플리케이션 성능 점검을 위한 도구의 유형 정리

 

  • 애플리케이션 성능 점검을 위한 성능 테스트 도구  시스템 모니터링 도구의 유형 악하고  특징을 간략하게 정리

 

(1) 성능 테스트 도구의 유형에 대해 파악

 

  • 성능 테스트 도구의 도구 도구 설명지원 환경지원 홈페이지 등의 정보를 파악하고 정리

 

(2) 시스템 모니터링 도구의 유형에 대해 파악

 

  • 시스템 모니터링 도구의 도구 도구 설명지원 환경개발 도구 지원 여부지원 홈페이지 등의 정보를 파악하고 확인

 

② 애플리케이션 성능 점검 계획서 작성

 

(1) 성능 점검 계획서에 포함될 항목에 대해 검토

 

(가) 애플리케이션 성능을 측정하기 위한 성능 점검 계획서의  항목에 대해 정의

 

  • 해당 시스템의 성능 점검을 수행하는 목적  성능 점검  활용할 용어에 대해 정의

 

(나) 성능 점검 수행 전략 수립

 

(a) 대상 시스템의 구성도 파악

 

  • 전체 시스템  성능을 점검해야  시스템을 파악하여 대상 구성도 작성

 

(b) 대상 서버의 정보 파악

 

  • 대상 서버의 서버 , IP주소설치된 운영 체제, CPU, 메모리설치된 솔루션 정보 파악하여 작성

 

(c) 성능 점검 수행 도구 결정

 

  • 성능 점검을 위한 오픈소스 또는 상업용 수행 도구를 결정하여 작성

 

(d) 성능 점검 환경 구성

 

  • 성능 점검을 위한 점검 팀을 확정하고 부하 발생 장비부하 발생 환경에 대하여 확인

 

(다) 성능 점검 수행 일정  절차에 대해 확정

 

(a성능 점검 수행 일정에 대해 확정

 

  • 계획 수립설계  개발테스트 환경 구축테스트 수행결과 분석보고서 작성 등에 대한 성능 점검 수행 일정에 대해 확정

(b성능 점검 수행 절차에 대해 확정

 

  • 테스트 계획 수립테스트 시나리오 작성테스트 케이스 작성워크로드(Workload) 설계레코딩테스트 수행결과 분석  성능 점검 수행 절차 확정

 

(c) 성능 개선 절차에 대해 확정

 

  • 기본 성능 자료를 도출하고 성능 테스트 결과를 분석하고 개선안을 적용하고 검증하여 성능 개선을 검증하는 절차에 대해 확정

 

(d) 성능 점검 역할별 수행 인력 확정

 

  • 성능 공통 테스트 업무 개발 팀의 팀별 수행 인력 확정

 

(라) 성능 점검 수행 방안에 대해 작성

 

(a) 각 시스템의 단위 성능 테스트 방법에 대해 결정

 

  • 성능 테스트의 경우 가상 인원이  명인지, Think Time(서버로부터 응답 다음 동작 때까지 대기하는 시간) 경우  초로 테스트할 것인지를 결정

 

(b) 시스템 성능 목표 설정

 

  •  시스템별 테스트 유형과 대상 업무목표 부하테스트 시간 등을 확정하고 스템의 성능 목표 설정

 

(c) 모니터링  성능 지표 수집 방안에 대해 결정

 

  • 측정 대상을 구분하고 측정 목적시스템 부하량배치 작업 소요 시간, SQL   모니터링 방안모니터링 측정 항목에 대해 설정

 

(d) 성능 테스트 시나리오 작성

 

  • Ramp-Up Model, Ramp-Down Model, Think Time Model  다양한 성능 테스트 델별 성능 테스트 시나리오를 작성

 

(2) 성능 테스트 계획서 작성

 

  • 성능 점검 개요성능 점검 수행 전략성능 점검 수행 일정  절차성능 점검 수행   결정된 항목을 포함하여 성능 테스트 계획서 작성

 

③ 애플리케이션 성능 테스트 수행

 

  • 애플리케이션 성능 점검 목표에 따라 성능 테스트 수행

 

(1) 애플리케이션 성능 테스트 케이스 작성

 

  • 애플리케이션 성능 측정을 위한 테스트 케이스를 아래 항목을 포함하여 작성

 

(가) 테스트 목표  목표 값을 설정하여 작성

 

  • 테스트 상황  사용자 호출 간격, TPS(Transaction Per Second), 응답 시간   값을 설정

 

(나) 측정 항목을 기술하여 작성

 

  • TPS응답 시간시스템 사용률거래 성공 비율  측정 항목에 대해 기술

 

(다) 테스트 시나리오 작성

 

  • 성능 테스트에 대한 구체적인 방법  절차에 대해 작성

 

(라) 사전 확인 사항에 대해 작성

 

  • 테스트 시작 시간종료 시간스크립트 수행 횟수부하 발생기 상태 확인데이터베이스 상태 확인투입인력 확인테스트 환경 설정테스트 데이터 등에 대해 작성

 

(2) 애플리케이션 성능 테스트 수행

 

  • 작성된 테스트 케이스  테스트 시나리오에 따라 애플리케이션 성능 테스트 수행

 

(가) 선정된 성능 테스트 도구 설치

 

  • 대상 시스템에 선정된 테스트 도구 설치

 

(나) 테스트 도구의 테스트 환경 설정

 

  • 해당 시스템의 운영 체제, DBMS 버전네트워크 상태 등에 대해 설정

 

(다) 성능 테스트를 위한 시나리오를 생성

 

  • 테스트 목적에 맞는 Load Type, 파라미터사용자 , Ramp-up load, Periodic load,   시간모티터링 결과 저장 파일 등의 정보 설정

 

(라) 시나리오를 실행하면서 테스트 상황 모니터링

 

  • 성능 테스트를 수행하면서 테스트 상황을 도구를 통해 모니터링

 

④ 성능 테스트 결과 분석을 통해 성능 저하 요인 발견

 

  • 애플리케이션의 성능 테스트 결과를 분석하여 성능 저하 요인 발견

 

(1) 애플리케이션의 성능 테스트 결과 분석

 

  • 애플리케이션 성능 목표 대비 결과 분석
  1. 사용자  증가에 따른 트랜잭션 성공 비율에 대해 추이 분석
  2. TPS, 응답 시간에 대해 분석
  3. 시스템 자원 사용률에 대해 분석, CPU 사용률메모리 사용률, DB 사용률에 대해 분석

 

(2) 애플리케이션의 성능 저하 요인을 발견하고 분석

 

  • 응답 시간이 목표 이하로 발생되는 애플리케이션의 성능 저하 요인 분석

 

(가) 애플리케이션 성능 부하 테스트 분석 결과에서 성능 저하 요인 발견

 

  •  애플리케이션별 가상 사용자, TPS, 목표 TPS, 응답 시간 평균응답 시간 90% 등의 데이터에서 목표를 달성하지 못한 애플리케이션을 발견하고 저하 요인 분석

 

(나) 응답 시간 측정  분석 결과에서 성능 저하 요인 발견

 

  • 대상 업무별 응답 시간 평균응답 시간 90% 측정 결과 성능 목표 미달성 애플리케이 션의 성능 저하 요인 분석

 

(다) 장애 또는 성능 저하 요인에 대해 원인 분석

 

  • 시스템 장애응답 시간 저하 등의 원인에 대해 분석

 

Comments