CODEDRAGON ㆍDevelopment/Software Engineering
조사한 자료를 이용하여 시스템 용량을 산정
수집 및 분석된 온라인 트랜잭션 처리(OLTP: Online Transaction Processing), WEB/WAS 기초 자료 조사 항목의 값을 시스템 용량산정 엑셀 파일에 입력하여 CPU, 메모리, 디스크 용량을 계산합니다.
용량산정
· CPU 산정
· OLTP/Batch/데이터베이스 서버
· CPU 용량 산정 - OLTP/Batch/DB 서버
· CPU 용량 산정 - WEB/WAS 서버
· 메모리 용량산정
· 디스크 용량산정
CPU 산정
H/W 구성요소 중 CPU는 산정 대상 시스템에 따라 산정 기준 적용이 달라집니다.
산정 대상 시스템 | 산정 기준 |
WEB이나 WAS 서버로 쓰이는 경우 | WEB / WAS 산정기준을 적용 |
DB 서버로 쓰이는 경우 | OLTP 또는 OLTP & BATCH 애플리케이션 산정기준을 적용 |
OLTP/Batch/데이터베이스 서버
· OLTP 또는 OLTP & BATCH 애플리케이션을 위한 서버의 규모산정을 위한 TpmC 추정에는 여러 가지 방법이 존재합니다.
· 어떤 서비스를 제공하는 시스템인가?, 어떤 시스템 아키텍처를 사용하는가? , 어떤 기종을 사용하는가? 에 따라 산정 방식이 달라집니다.
※ 온라인 트랜잭션 처리(OLTP: Online Transaction Processing)/일괄작업(Batch)/데이터베이스 서버의 CPU 용량을 산정하기 위한 상세 내용은 [20.01.02.응용SW엔지니어링_01_요구사항확인_시스템 용량 산정 방법 상세내용 발췌]한 첨부파일을 참조합니다.
CPU 용량산정 - OLTP/Batch/DB 서버
OLTP/Batch/DB 서버 산정 절차
구체적인 CPU 용량 산정 절차는 아래와 같습니다.
CPU 용량 산정 방법
CPU 용량을 산정하는 경우 OLAP, BATCH, DB 서버는 지표를 활용하여 산정합니다.
CPU (tpmC단위) = 분당 트랜잭션 수 X 기본 tpmC 보정 X 피크타임 부하 보정 X DB 크기 보정 X 애플리케이션 구조 보정 X 애플리케이션 부하 보정 X 클러스터 보정 X 시스템 여유율 / 시스템목표활용율 |
구분 | 산정항목 | 내용 | 적용범위 | 일반값 |
1 | 분당 트랜잭션 수 | 산정 대상 서버에서의 분당 트랜잭션 발생 추정치의 합 |
- | 업무 수 : 2 업무당 트랜잭션 수 : 4~6개 |
2 | 기본 tpmC 보정 | 실험환경에서 측정한 tpmC 수치를 복잡한 실제 환경에 맞게 적용하기 위한 보정 |
- | 5 |
3 | 피크타임 부하 보정 |
업무가 과중한 시간대에 시스템이 원활하게 운영될 수 있도록 피크타임을 고려한 보정 |
1.2 ~ 1.5 | 1.3 |
4 | DB 크기 보정 | 데이터베이스 테이블의 레코드 건수와 전체 데이터베이스 볼륨을 고려한 보정 |
1.5 ~ 2.0 | 1.7 |
5 | 애플리케이션 구조 보정 |
애플리케이션의 구조와 요구되는 응답 시간에 따른 성능 차이를 감안한 보정 |
1.1 ~ 1.5 | 1.2 |
6 | 애플리케이션 부하 보정 |
온라인 작업을 수행하는 피크타임에 배치 작업 등이 동시에 이루어지는 경우를 감안한 보정 |
1.3 ~ 2.2 | 1.7 |
7 | 클러스터 보정 | 클러스터 환경에서 장애발생 시를 대비한 보정 |
2-NODE : 1.4 ~ 1.5 3-NODE : 1.3 |
- |
8 | 시스템 여유율 | 예기치 못한 업무의 증가 등을 위한 여유율 | - | 1.3 |
9 | 시스템목표 활용율 |
시스템의 안정적인 운영을 전제로 한 CPU활용율 |
- | 0.7 |
tpmC
https://codedragon.tistory.com/9042
CPU 용량 산정을 위한 산정 기준의 차이점
· CPU 용량산정을 위한 H/W벤더 혹은 SI업체의 산정항목이나 지표 혹은 보정치가 다릅니다.
· 지표나 보정치의 경우 용량 산정을 수행하는 시스템 설계자의 경험에 따라 부여하는 값이 달라질 수 있습니다.
· 동일한 시스템 환경에 대해서 많은 차이를 보일 수 있습니다.
· tpmC 값은 현장에서는 유사 성능 측정지표에 보정치를 곱하여 적용합니다.
트랜잭션 수 구하기
· 기존 운영 중인 시스템에 대한 트랜잭션을 연간, 월간 단위로 조사하고 이를 분당 트랜잭션으로 변환하여 이용합니다.
· 연간 및 월간 트랜잭션은 애플리케이션을 사용하고 있는 기존 시스템에서 이미 조사된 수치를 가지고 있습니다.
· 트랜잭션이 일어나는 일수 및 시간을 산정의 첫번째 단계로 고려합니다.(트랜잭션이 1개월간 30일 내내 일어나는가?, 토ㆍ일요일을 뺀 약 20일간에 일어나는가?, 1일 8시간 동안 일어나는가? 또는 24시간 내내 일어나는가? 등)
[트랜잭션 수 구하기 예시]
A기관은 현존하는 MIS 시스템을 업그레이드하여 개발하고자 합니다.
기존 시스템 분석 | 현재 일별 업무처리 건수는 약 19,000 건 연간 15%의 증가를 예상 향후 개발되는 시스템의 운영 연한을 5년으로 가정 |
신규 개발 시스템 | 일별 업무처리 건수는 약 38,215 건(19,000×1.15×1.15×1.15×1.15×1.15) 단, 오전 10시 ~ 11시 에 업무처리 건수의 30%가 이루어진다고 가정 → 피크타임을 고려한 분당 업무처리 건수는 약 192건 (38,215×0.3 / 60이 발생) 업무 1건당 7건의 트랜잭션을 발생시킨다고 가정 → 분당 트랜잭션 수는 1,344건 (분당 업무처리건수×업무 건당 트랜잭션 수 = 192×7) |
WEB/WAS 서버 - CPU 용량 산정
구체적인 CPU 용량 산정 절차
CPU 용량을 산정하는 경우 WEB, WAS 서버에 대하여 지표를 활용하여 산정합니다.
CPU 용량 산정 방법
CPU(OPS단위) = 동시 사용자 수 X 사용자당 오퍼레이션 수 X 업무 용도 보정 X 인터페이스 부하 보정 X 피크타임 부하 보정 X 클러스터 보정 X 시스템 여유율 / 시스템목표활용율 |
구분 | 산정항목 | 내용 | 적용범위 | 일반값 |
1 | 동시 사용자 수 | 소프트웨어나 시스템을 네트워크 상에서 동시에 사용하는 사용자 |
- | 산정값 |
2 | 사용자당 오퍼레이션 수 |
사용자 한 사람이 초당 발생시키는 오퍼레이션 수 |
3 ~ 6개 | 5개 |
3 | 기본 OPS 보정 | 실험환경에서 측정한 ops 수치를 복잡한 실제 환경에 맞게 적용하기 위한 보정 |
- | 3 |
4 | 업무 용도 보정 | 적용대상 시스템 유형에 따른 보정치 | - | WEB : 0.7 WAS : 2 |
5 | 인터페이스 부하 보정 |
서버가 타서버와 통신하게 될 때 인터페이스에서 발생하는 부하를 고려한 보정 |
1.1 ~ 1.2 | 1.1 |
6 | 피크타임 부하 보정 |
갑자기 많은 접속으로 인해 부하가 발생하는 것을 해결하기 위한 보정 |
1.2 ~ 1.5 | 1.3 |
7 | 클러스터 보정 | 클러스터 환경에서 장애발생시를 대비한 보정(노드수에 따른 적용) |
2-NODE : 1.4 ~ 1.5 3-NODE : 1.3 |
- |
8 | 시스템 여유율 | 시스템의 안정된 운영을 위한 보정 | - | 1.3 |
9 | 시스템목표활용율 | 시스템의 안정적인 운영을 전제로 한 CPU 활용율 |
- | 0.7 |
[동시 접속자 수 구하기 예시]
전국민을 대상으로 하는 서비스 중 예상 가입자 수는 전체 인터넷 사용자 수를 감안하여 100만명을 가정합니다.
· 동시접속자 수는 전체 사용자의 1%로 가정(10,000명) · 트랜잭션을 발생시키는 동시사용자 수는 동시접속자 수(10,000명)의 10%인 1,000명으로 산정 |
사용자별 오퍼레이션 수
적용값 | 설명 |
3 | WEB서서비스 위주 업무 (복잡한 응용로직이 아닌 조회위주의 업무를 의미함) |
4 | WEB서비스와응용로직혼합되어있으나웹서비스위주업무 |
5 | WEB서비스와 응용로직 |
6 | 응용로직 위주의 업무 |
[업무용도 보정 예시]
정대상이 WEB 서버, WAS 서버 등 시스템 유형에 따라 다른 보정치를 적용합니다.
WEB 서버와 WAS 서버의 업무 부하에 대한 상대적 차이를 반영하여 WEB 서버인 경우 0.7, WAS 서버인 경우 2를 적용합니다.
WEB 서버 | 0.7 |
WAS 서버 | 2 |
[피크타임 부하 보정 예시]
구분 | 적용값 | 설명 |
상 | 1.5 | 특정시간이나 특정일에 매우 과도한 부하가 걸리는 경우 |
중 | 1.4 | 특정한 마감일에 과도한 부하가 걸리는 경우 |
하 | 1.3 | 특정 시간대에 매일 혹은 매주 피크타임이 있는 경우 |
기타 | 1.2 | 피크타임이 존재하나 부하 차이가 존재하지 않는 경우 |
※ WEB/WAS 서버의 CPU 용량을 산정하기 위한 상세 내용은 [20.01.02.응용SW엔지니어링_01_요구사항확인_시스템 용량 산정 방법 상세내용 발췌]한 첨부파일을 참조합니다.
메모리 용량산정
· 메모리의 규모산정 방법은 CPU에 비해 훨씬 간단합니다.
· 구축하는 시스템별로 프로그래밍 언어나 쓰레드 사용 등 다양한 방법에 의해 메모리 점유를 줄이기 위한 전략을 사용합니다.
· 규모산정 방법에는 조금씩 차이가 있습니다.
· 시스템에서 구동되는 프로세스의 수와 그 프로세스가 사용하는 메모리 양이 메모리 산정에 큰 영향을 줍니다.
· 기준 지침에는 프로그래밍 언어나 쓰레드 사용, 특정 시스템에 대한 메모리 구성 특성의 반영 등을 고려하지 않습니다.
· 일반적인 시스템의 용도와 구조를 바탕으로 메모리 규모를 산정합니다.
메모리 용량산정 절차
항목의 적용 범위
· 산정식의 적용 시 해당 항목의 적용가능한 값의 범위를 나타냅니다.
· 일반값은 구체적인 조건을 알지 못하는 경우 산정자(용량 산정을 수행하는 수행자)가 가장 일반적으로 적용할 수 있는 값을 의미합니다.
· 산정자는 대부분 주어진 입력값 범위 내에서 적용이 가능합니다.
메모리 용량 산정 방법
메모리 (MB단위) = (시스템 영역 + (사용자당 필요 메모리 X 사용자 수) + 미들웨어 버퍼캐쉬 메모리) X 버퍼캐쉬 보정 X 시스템 여유율 |
구분 | 산정항목 | 내용 | 적용범위 | 일반값 |
1 | 시스템 영역 | OS, DBMS 엔진, 미들웨어 엔진, 기타 유틸리티 등의 소요공간 |
- | 산정값 |
2 | 사용자당 필요 메모리 |
애플리케이션, 미들웨어, DBMS의 사용에 필요한 사용자당 메모리 |
1MB~3MB | 2MB |
3 | 동시사용자 수 | 소프트웨어나 시스템을 네트워크 상에서 동시에 사용하는 사용자 |
- | 산정값 |
4 | OS 버퍼캐쉬 보정 | 처리 속도를 향상시키기 위해 일정량의 데이터를 임시로 모아 놓은 기억장소를 위한 보정 |
1.1 ~ 1.3 | 1.15 |
5 | 미들웨어 버퍼캐쉬 메모리 |
DBMS의 공유메모리, WAS의 heap size 등 미들웨어에서 사용하는 캐쉬영역 |
- | 산정값 |
6 | 시스템 여유율 | 시스템의 안정된 운영을 위한 보정 | - | 1.3 |
※ 서버의 메모리를 산정하기 위한 상세 내용은 [20.01.02.응용SW엔지니어링_01_요구사항확인_시스템 용량 산정방법 상세내용 발췌]한 첨부파일을 참조합니다.
디스크 용량산정
· 디스크 규모산정 시 가장 중요한 고려요소는 데이터 백업 방안입니다.
· 백업정책에 의해 디스크 요구량은 큰 차이를 가지기 때문에 데이터의 중요도를 고려하여 상황에 적절한 백업 정책을 수립할 필요가 있습니다.
· 데이터 백업을 수행하기 위한 여러 방법과 도구가 존재합니다.
· 시스템 자체적으로 백업정보를 보관합니다.
· 테이프와 같은 보조 기억장치를 사용하는 이중 백업정책 사용합니다.
· 데이터의 신뢰성과 안정성이 절대적으로 필요한 경우 디스크 미러링 같은 시스템 전체 백업 방안도 유용합니다.
· 디스크 용량에 포함되는 백업요소 중 가장 일반적인 규모산정 방안을 기술합니다. (DBMS에서 제공되는 Archive 백업, 하드웨어적인 RAID 디스크 사용에 의한 백업)
디스크 용량산정 절차
디스크 산정 주의사항
· 처음 사용을 위하여 포맷 필요하며 보통 디스크 공간의 약 15%를 필요로 하게 됩니다.
· 지침의 산정식에서는 디스크 공간을 감안하지 않으므로 최종적으로 산정한 디스크 규모 산정치에 추가적으로 고려해야 합니다.
디스크 용량 산정 방법
시스템 디스크 = (시스템 OS 영역 + 응용 프로그램 영역 + SWAP 영역) X 파일시스템 오버헤드 X 시스템 디스크 여유율 X RAID 여유율 |
데이터 디스크 = (데이터 영역 + 백업 영역) X 파일시스템 오버헤드 X 데이터 디스크 여유율 X RAID 여유율 |
구분 | 산정항목 | 내용 | 적용범위 | 일반값 |
1 | 시스템 OS 영역 |
운영체제 및 시스템 소프트웨어 등을 위한 영역 |
- | 산정값 |
2 | 응용프로그램 영역 |
미들웨어 및 응용소프트웨어 영역, 데이터베이스 설치 영역, 기타 유틸리티 설치 영역 등 응용프로그램을 대상으로 함 |
- | 산정값 |
3 | SWAP 영역 | 시스템 장애 시의 Dump역할 수행과 메모리 대용의 효율적인 Swapping을 수행하기 위한 작업공간 |
- | 산정값 |
4 | 파일 시스템 오버헤드 |
일반 사용자 관리영역을 위한 수퍼유저의 관리 공간 및 I-node Overhead, 수퍼블럭, 실린더그룹 등 파일관리 공간 |
- | 1.1 |
5 | 시스템/데이터 디스크 여유율 |
시스템의 안정된 운영을 위한 보정으로 업무의 중요도나 긴급도를 감안하여 적용 |
1.2 ~ 1.5 | 1.3 |
6 | 데이터 영역 | 실제 필요한 데이터량 | - | 산정값 |
7 | 백업 영역 | 데이터와 데이터의 변경내역 정보 등의 백업을 위한 공간 |
- | 산정값 |
8 | RAID 여유율 | RAID 디스크가 도입될 경우 데이터 보호를 위한 패러티 영역으로 사용되는 공간을 위한 보정 |
- | RAID1, RAID0+1, RAID1+0 : 2.0 RAID5 : 1.3 RAID6 : 1.4 |
9 | 시스템/데이터 디스크 여유율 |
시스템의 안정된 운영을 위한 보정으로 업무의 중요도나 긴급도를 감안하여 적용 |
1.2 ~ 1.5 | 1.3 |
※ 시스템의 디스크 용량을 산정하기 위한 상세 내용은 [20.01.02.응용SW엔지니어링_01_요구사항확인_시스템 용량 산정 상세내용 발췌]한 첨부파일을 참조합니다.
시스템 산정 상세내용
· [20.01.02.응용SW엔지니어링_01_요구사항확인_시스템 용량 산정 방법 상세내용 발췌]
· https://codedragon.tistory.com/4025
'Development > Software Engineering' 카테고리의 다른 글
SWEBOK 3.0 다운받기- Download (0) | 2019.04.21 |
---|---|
현행 시스템 파악의 정의, 현행 시스템 파악의 목적, 현행 시스템 파악 주요활동 (0) | 2019.04.19 |
현행 시스템 관련 자료 수집 (0) | 2019.04.19 |
현행 시스템 분석서 (0) | 2019.04.18 |
현행 시스템 분석, 주변 시스템 파악 (0) | 2019.04.18 |