정보시스템 운영관리지침 – 4.성능관리 – 1)개요 2/2편

연재중인 이전 글 보기

4. 정보시스템 성능관리

2. 대상 및 범위

다 ) DBMS 성능관리 개요

: 데이터 및 사용자 증가로 인한 성능 악화에 대해 효율 및 응답속도 등을 최적의 상태로 유지/제공하기 위해 개선하는 것으로, 운영시스템 및 주변시스템의 영향을 많이 받으므로, 각 부문별 부하요소의 최소화를 위한 전략적인 설계가 필요하다.

① DBMS의 성능관리

– 설계단계부터 적용 : 설계단계에서부터 고려하여야 한다.
– 목표설정 : 투자대비이익률을 고려하여 성능관리 집중 대상 프로그램이나, 프로젝트를 선별하는 것이 권장된다.
– 성능목표 이행상황 모니터 : 목표를 달성하기 위한 성능관리의 시작으로 모니터링을 실시하고, 정기적으로 측정값을 공표해야 한다.
– 공동작업 : 데이터베이스관리자, 응용프로그램 설계자/개발자, 시스템(네트워크) 관리자가 공동으로 성능관리 작업에 참여하여야 한다.

② DBMS 성능관리의 목표

– 대기 감소 및 제거
– 가장 적은 수의 디스크 블록 액세스
– 메모리에 블록 캐시
– 응답시간(Response Time)
– 처리능력(Throughput)
– 워크로드(Workload)

③ DBMS 성능관리의 원칙

– 미리 정의된 성능기준치 이상의 효율을 갖도록 한다.
– 튜닝을 위한 자료의 취합 및 튜닝방법, 결과분석에 따른 조치방법 등, 기본적인 관리절차에 준하여 관리한다.
– 분석자료의 취합 방법은 성능에 가장 영향을 미치지 않는 방법을 선택한다.
– 자료분석에 의해 조치가 완료되면, 성능향상 유무를 확인하고 변동사항에 대하여 이력관리를 수행한다.
– 일일 단위, 주 단위, 월 단위로 구분하여 주기적이고 반복적인 성능관리를 실시한다.

④ 성능관리의 영향요소

: 데이터베이스의 성능 영향요소는 시스템 자원인 CPU, 메모리, 디스크, 네트워크 부분과 직접적인 상관관계가 있으므로, 성능분석 시 관련 자료를 상호 검토하여야 한다.
– 시스템 관리자, 어플리케이션 담당자, 데이터베이스관리자(DBA)가 필요하다고 판단하는 기타 항목에 대해 별도의 기준치(Base Line) 설정 후 관리한다.
– 일시적인 성능 조정(튜닝)의 목적으로 특정 항목에 대한 관리가 필요할 경우라 하더라도 관리 항목의 성능관리 절차에 준하여 관리한다.

⑤ DBMS 성능관리의 담당자

– DBMS의 성능관리는 데이터베이스 관리자만의 영역이 아닌 프로젝트 상의 DBMS 이용 및 관리자들이 모두 해당된다. 응용 프로그램 설계자의 데이터베이스 사용에 관련된 로직과 모델링(Modeling), 그리고 응용 프로그램 개발자의 SQL 문장은 전체 데이터베이스 성능의 70~80%를 좌우한다. 시스템 관리자의 자원(CPU, 메모리, 디스크 I/O, 네트워크) 관리 영역의 영향도 역시 DBMS 성능관리에 적극적으로 반영되어야 한다.

DBMS 성능관리 담당자성능관리 역할
업무분석가– 업무 프로세스 최적화
응용 프로그램 설계자– 데이터 설계(정규화, 반정규화)

– 프로세스 설계(어플리케이션 로직)

응용 프로그램 개발자– SQL 문장 튜닝

– 물리적 구조 튜닝

데이터베이스 관리자– 메모리 할당 튜닝

– I/O 경합 튜닝

– 메모리 경합 튜닝

시스템 관리자– 운영체제 및 H/W 튜닝

⑥ DBA의 주요 성능관리 업무

– 성능관리 수행자들의 의견조율 계획에 반영하여야 할 사항

· DBMS 성능관리 대상 요소 및 측정 항목
· 측정 항목별 임계치 설정
· 임계치를 초과하는 항목에 대한 분석 방안
· DBMS 성능 측정 항목에 대한 측정 방법 및 측정 주기
· DBMS 성능 측정 결과를 이용한 장기적 성능 분석 방안

– 분석결과에 포함하여야 하는 사항

· DBMS 성능 분석 대상의 구성 정보(업무용도, 대상명, 설치 위치, 구성 항목 등)
· DBMS 성능 측정 도구 및 측정 방법 정보
· DBMS 성능 측정 결과에 대한 성능 및 추이 분석
· 통합된 관점의 성능 분석 결과 : 전체 IT 서비스에 미치는 영향 판단

⑦ DBMS 성능관리 대상 및 범위

 대상범위
 스키마(schema)스키마 성능관리는 데이터의 물리적 구조를 통해 이루어짐

– 테이블(모델링)과 인덱스의 설계 및 생성, 삭제

– 테이블의 정규화(Normalization)를 통한 중복 배제

– 테이블의 반정규화 (De-Normalization)를 통한 성능극대화

응용 프로그램

(문장튜닝)

응용 프로그램 영역 성능관리는 업무기능 및 이 기능을 구현하는 프로그램 모듈을 다룬다.

– 응용 프로그램 유형에 맞는 프로시져 코드의 분석, 운영, 튜닝

– 어플리케이션으로부터 수행되는 SQL 문장 분석, 튜닝

– 어플리케이션의 로직 조정을 통한 성능 개선점 분석

공유메모리 영역

(파라미터튜닝)

공유메모리 영역은 적절한 크기의 캐쉬 풀(Cache Pool)을 운영관리하여 성능의 극대화를 유도한다.

– 데이터 버퍼 영역을 설정하여 OLTP 업무의 경우 90% 후반대의 데이터 캐쉬 적중률을, 데이터웨어하우스의 경우 60% 이상의 캐쉬 적중률을 유지

– SQL 문장의 처리를 위한 공유메모리 영역의 운영을 통하여 하드파싱을 방지하고 소프트파싱을 유도

– 기타 메모리 영역의 운영을 통하여 추가적인 CPU의 사용 및 Disk I/O량을 조정한다.

데이터베이스

(물리적인

데이터

파일 관리)

디스크에서 데이터베이스 파일의 물리적인 분산 배치를 통하여 I/O 성능을 관리하는 영역으로 데이터베이스 병목현상의 가장 많은 부분을 차지하는 I/O 성능을 관리한다.

– 데이터 파일의 분산배치

– 컨트롤 파일의 분산배치 및 이중화

– 리두로그 파일의 분산배치 및 이중화

– 아카이브 모드의 데이터베이스 운용

– 세그먼트(테이블, 인덱스 등)의 단편화(Fragmentation) 관리

Locking 관리데이터베이스 기본 잠금(Locking) 방식은 최고의 데이터 동시성을 허용하면서 데이터의 일관성을 보장하기 위한 수단으로써, 성능관리의 주요 범주에 포함되어야 한다.

– 잠금 유형별 어플리케이션의 사용(Row, Block, Table 레벨의 잠금 판단 및 운용)

– 잠금 경합의 원인 및 진단

– 잠금 경합 및 교착 상태의 해결

사용자 기대

수준

성능관리자는 사용자들이 요구하는 기대 수준을 분석/기록하여 항상 이에 대응하는 성능 상태를 유지하여야 한다. 사용자들의 기대 수준은 설계 및 구축 단계 이전에 분석되어 DBMS 시스템에 반영되지만 일반적으로 운영과정을 거치면서 변하게 된다. 따라서 일관성 있는 사용자 기대 수준을 충족시키기 위하여 SLA를 통한 정량화된 서비스 만족도를 파악하여야 한다. 결국 사용자의 기대 수준 또한 DBMS 성능관리의 대상으로 볼 수 있음을 의미한다.

⑧ DBMS 성능관리 구성도

DBMS 성능관리를 위한 아키텍처

⑨ 도구를 이용한 DBMS 성능관리

– 실시간 모니터링 지원, 성능정보의 채집 및 기록, 경보기능, 튜닝지원 등의 필요 기능이 제공되어야 DBMS 성능관리 아키텍처를 올바로 지원할 수 있다.

라) 응용소프트웨어

① 성능관리 대상 및 범위

– 응용프로그램 : 정보시스템 구축 또는 운영 시 프로그래밍 언어를 사용하여 신규 또는 변경 개발된 모듈을 의미하며 응답시간, 시간당 트랜잭션 처리량이 주요 관리 대상이다.

대상범위
응답 시간/

배치 실행 환경

– 부하량에 따른 응용 프로그램의 평균, 최소, 최대, 90% 응답 시간 측정 및 분포도와 대기 시간 분석 및 튜닝

– 부하량에 따른 응용 프로그램의 초당 트랜잭션 처리 건수, 전체 처리 건수 측정 및 Throughput 변화 분석

– 함수 또는 메쏘드 호출의 타임아웃 적용 여부, 타임아웃 발생 건수 측정, 타임아웃 발생시의 응답 시간 확인, 원인 분석 및 튜닝

메모리 사용– 응용 프로그램 코드 및 라이브러리에 대한 메모리 크기 측정

– 시간당 또는 일별 메모리 증가량 및 증가율 측정, 원인 분석 및 튜닝

데이터베이스

처리

– 커넥션 풀(Connection Pool) 사용 여부, Cursor 유형 및 bind 변수 사용여부, 사용된 SQL 및 SQL 조회 처리의 효율성 분석
오류 및 예외– 응용 프로그램의 오류 및 예외 발생 건수, 유형 및 패턴 분석
배치 실행 환경– 배치 프로그램의 수행 계획, 수행 시간, 선ㆍ후행 작업 분석

– 응용 플랫폼 : TP Monitor, WAS, 웹서버, EAI 등 응용 프로그램 실행을 위한 환경 및 서비스(트랜잭션, 보안, 네이밍, Persistence 등)를 제공하는 미들웨어 제품이 포함된다.

대상범위
응답 시간/

트랜잭션 처리량

– 부하량에 따른 평균, 최소, 최대 및 90% 서비스 시간 측정, 분포도와 대기 시간 분석 및 튜닝

– 부하량에 따른 초당 트랜잭션 처리(요청) 건수, 전체 요청(처리) 건수 측정 및 Throughput 변화 분석

– 발생 건수, 타임아웃 발생 시의 응답 시간 측정 및 원인 분석, 튜닝

대기 큐/

대기 시간

– 대기 큐에 저장된 요청들의 실시간, 평균, 최대 요청 개수 측정 및 원인 분석

– 대기 큐에서 소요된 평균, 최대 대기 시간 측정, 원인 분석 및 튜닝

– 대기 큐에 저장되지 못하고 거절된(rejected) 요청들의 개수 및 발생

프로세스(쓰레드)

상태 및 개수

– 프로세스 또는 쓰레드의 실시간 서비스 상태 및 자원 (CPU, 메모리, 디스크I/O 등) 사용량, 메모리 사용량 추이 및 분석

– 시간당 GC(Garbage Collection) 횟수 및 평균, 최대 처리 시간, GC 전, 후의 메모리 사용량 변화 측정, 분석 및 튜닝(J2EE, .NET)

– 어플리케이션 프로세스 또는 쓰레드의 평균, 최대 실행 개수 측정, 및 분석

세션 상태

및 개수

– 클라이언트 연결 세션의 메모리 사용량 측정

– 클라이언트 연결 세션의 평균, 최대 개수 측정

통신 큐, 채널 상태– 클라이언트 연결 요청에 대한 시간당 drop 건수 측정, 백로그(backlog) 튜닝

– TCP, UDP 등의 시간당 오버플로우(over-flow) 건수 및 비정상 TCP 연결(SYN_SENT, FIN_WAIT_2, CLOSE_WAIT) 건수 측정, 원인 분석 및 튜닝

– 사용하고 있는 파일 디스크립터(descriptor) 개수 측정

자원(Resource) Pool– 데이터베이스 커넥션 풀(Connection Pool), 쓰레드 또는 객체 풀 등의 평균, 최대 사용 개수 측정, 분석 및 튜닝
오류 및 예외– 응용 플랫폼의 오류 및 예외 발생 건수, 유형 및 패턴 분석
부하 분산– 클라이언트 요청에 대한 실시간 부하 분산 상태 측정

– 응용 솔루션 : 그룹웨어, CRM, ERP, SCM등 업무처리를 지원하는 비즈니스 솔루션과, B2Bi, BPM, ETL, EII 등 조직 내외부의 프로세스 또는 정보를 통합하기 위한 통합 솔루션 및 디렉토리, 인증 등의 보안 솔루션 등 다양한 도구들이 포함된다.

대상범위
구간별 수행 시간– 평균 응답 시간, 대기 시간, Roll 시간, 로드 시간, 데이터베이스 시간의 측정, 분석 및 튜닝
대기 큐– 대기 큐에 존재하는 평균 요청 개수, 대기 시간 측정, 원인 분석 및 튜닝
메모리/버퍼– 메모리 영역/버퍼(R/3, roll area 등)의 부족 또는 과다 여부 확인, 오브젝트 버퍼링 여부 검토 및 튜닝
오류 및 예외– 응용 솔루션의 오류 및 예외 발생 건수, 유형 및 패턴 분석

② 성능관리 구조도

성능관리 구조도

나) 통합적 성능관리

① 개요

: 통합관리시스템이란 IT 시스템을 위한 성능관리 활동을 자동화 및 통합 콘솔을 통하여 통합적으로 관리하는 것을 말한다. 이는 IT시스템을 위한 각종 관리활동(활동(모니터링, 장애관리, 변경관리, 성능/용량관리, 구성관리, 자산관리, 백업관리, 스토리지관리, 보안관리, Job 스케쥴링, 운영이관, 서비스수준관리, 서비스데스크, 관리자를 위한 리포팅등)을 지원하고, 관리 활동 상호간의 연동 및 통합관리 기능을 지원한다.

② 성능관리 대상 및 범위

– 적용범위 : 통합관리 체제뿐 아니라, 운영을 위한 절차와 지침, 인력이 필수적이며, 통합 성능관리시스템은 그 범위가 넓어 단계적으로 접근하는 것이 적합

성능관리기능

어플리케이션/서버 그룹

성능관리 적용범위

(관리수준 요구사항)

Group 1기업의 핵심업무 지원, 일반고객 및 트랜잭션 처리 시스템

예) 영업, 수/미납, 청구

– 월 1회 성능 추이 분석, 성능 개선방안 수립/보고
Group 2기본적인 경영관리 및 업무지원 시스템

예) 재무, 회계, 그룹웨어

– 서버, DB, 어플리케이션, 네트워크 성능에 대한 임계치 정의 및 모니터링

– 월 1회(또는 SLA에 규정된 시기에) 성능 추이 분석 수행

– 성능 이슈 발생시 성능개선을 위한 튜닝, 구성변경 작업 수행

– 필요시 통합 성능 테스트 및 결과보고

Group 3경영정보 지원 및 의사결정 지원 시스템

예) 인사, Data Mining, EIS

– 성능 이슈 발생시 성능 개선작업 수행
Group 4모든 시스템의 개발/시험용도로 사용 중인 서버

예) 개발용 시스템/서버

– N/A

– 상위그룹은 하위그룹의 서비스를 포함함

– 적용대상

· 통합성능관리시스템으로 관리해야 할 어플리케이션/서버를 선정할 때에는 어플리케이션의 업무 특성과 서버의 IT 특성을 고려하여 대상을 선정하여 각 시스템/서버별 차별화된 운영적용이 가능하도록 한다.

③ 통합적 성능관리 구성도

통합적 성능관리의 논리적 구성도

 

성능관리 부분은 내용이 많습니다. 지침에서는 약 200페이지 가량 됩니다.

다음에는 성능관리 프로세스 부분을 정리해서 올리도록 하겠습니다.

 

참고자료 : 정보시스템 성능관리지침(발행처 : 국무조정실, 정보통신부 발행:2005.12)

    About 부루스타

    부루스타

    Leave a Reply

    첫번째 댓글을 작성해 주세요.

    메일 알림 설정
    wpDiscuz