
1. 서버 용량 산정
서버 용량 산정?
- 시스템에 필요한 서버의 하드웨어 및 네트워크 리소스를 사전에 예측하여, 필요한 만큼의 용량을 확보한 후, 최적의 성능을 제공하기 위한 작업.
- 서버 비용을 효율적으로 관리하고, 예상치 못한 성능 저하나 서비스 장애를 예방하는데 중요한 역할
서버 용량 산정의 주요 요소
1-1.cpu(중앙 처리 장치)
- 서버가 동시 처리할 수 있는 요청의 양과 연관
- 사용자의 트래픽이 많아질수록 더 많은 CPU 자원이 필요하며, 다중 사용자 처리를 위한 적절한 CPU 성능이 요구
=>트래픽? 서버와 스위치 등 네트워크 장치에서 일정 시간 내에 흐르는 데이터의 양
- WEB이나 WAS서버로 쓰이는 경우는 WEB/WAS산정기준을 적용, DB서버를 이용할 경우는 OLTP서버 산정기준을 적용
- WAS? Web Application Server(웹 애플리케이션 서버)로써 WEB+웹 컨테이너
- 웹 컨테이너? JSP와 서블릿을 실행시킬 수 있는 소프트웨어를 웹 컨테이너 혹은 서블릿 컨테이너라 함
- 웹서버에서 JSP를 요청하면 톰캣(아파치 소프트웨어 재단의 WAS)에서는 JSP파일을 서블릿으로 변환하여 컴파일 수행한 수 그 결과를 웹서버에 전달
- 그렇다면 WEB과WAS의 차이는 WEB은 정적인 데이터를 처리(이미지나 단순 HTML파일) WAS는 동적인 데이터(데이터 조작이 필요한 경우)

- OLTP서버? OLTP(온라인 트랜잭션 처리)는 온라인 뱅킹, 쇼핑, 주문 입력 또는 텍스트 메시지 전송 등 동시에 발생하는 다수의 트랜잭션을 실행하는 데이터 처리 유형
- 트랜잭션? 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위
1-2.WEB/WAS산정기준, OLTP서버 산정기준
- WEB/WAS산정기준에는 총 9가지의 산정항목이 존재
- 동시 사용자수: 동시에 접속하여 서버에 요청을 보내는 사용자 수
- 사용자 오퍼레이션 수: 사용자가 서버에 요청하는 작업의 빈도이고 만약 무거운 작업이 많을수록 서버의 부담이 커짐
- 기본 OPS 보정: 서버가 1초당 처리할 수 있는 평균 작업 수로, 서버가 안정적으로 요청을 처리할 수 있는 기본 성능을 보정하는 지표
- 업무용도 보정: 서비스나 시스템의 업무 특성을 고려해 추가적인 보정을 하는 요소
- 인터페이스 부하 보정: 외부 시스템과의 데이터 교환(인터페이스)으로 발생하는 추가적인 부하를 고려하는 지표
- 피크타임 부하 보정: 일반적인 시간대보다 특정 시간에 사용자가 몰리는 상황(피크타임)을 대비해 부하를 보정 ex)이벤트 날짜-무신사 할인같은 날?
- 클러스터 보정: 서버가 클러스터(여러 서버가 하나의 시스템처럼 동작하여, 서버 간 데이터 분산 처리나 장애 발생 시 자동으로 다른 서버가 업무를 대체하는 구조) 환경에서 운영될 때의 상황을 고려해 용량을 보정
- 시스템 여유율: 서버의 성능을 최적화하면서도 여유 자원을 확보하여 예기치 못한 상황에 대비하는 비율
- 시스템목표활용율: 서버 자원의 목표 활용도를 설정
=>여기서 보정이란 단어는 서버 용량 산정 시 특정 조건을 반영하여 추가적으로 고려하거나 조정하는 것을 의미함

- OLTP서버 산정기준 총 9가지의 산정항목이 존재
- 분당 트랜잭션 수: 트랜잭션 수를 기반으로 서버의 처리 용량을 예측하는 중요한 지표
- 기본 tmpC 보정: 여기서 tmpC는 일정 온도에서 서버가 안정적으로 처리할 수 있는 기본 용량을 의미로,서버의 안정적인 성능을 유지하기 위해 설정
- 피크타임 부하 보정: 일반적인 시간대보다 특정 시간에 사용자가 몰리는 상황(피크타임)을 대비해 부하를 보정 ex)이벤트 날짜-무신사 할인같은 날?
- 데이터베이스 크기 보정: 데이터베이스의 크기와 그 증가 속도에 맞춰 서버 용량을 보정
- 에프리케이션 구조 보정: 애플리케이션의 아키텍처와 구조에 따라 서버에 미치는 부하를 조정하는 지표
- 에프리케이션 부하 보정: 애플리케이션이 실제 운영에서 발생시키는 평균적인 부하를 고려하는 보정
- 클러스트 보정: 서버가 클러스터(여러 서버가 하나의 시스템처럼 동작하여, 서버 간 데이터 분산 처리나 장애 발생 시 자동으로 다른 서버가 업무를 대체하는 구조) 환경에서 운영될 때의 상황을 고려해 용량을 보정
- 시스템 여유율: 서버의 성능을 최적화하면서도 여유 자원을 확보하여 예기치 못한 상황에 대비하는 비율
- 시스템목표활용율: 서버 자원의 목표 활용도를 설정

2.메모리 산정
- 구축하는 시스템별로 프로그래밍 언어나 쓰레드의 사용 등 다양한 방법에 의해 메모리 점유를 줄이기 위한 전략을 사용
- 시스템에서 구동되는 프로세스의 수와 그 프로세스가 사용하는 메모리 크기가 메모리 산정에 큰 영향을 미침
- 총 6가지의 항목이 존재
- 시스템 영역: 서버 운영에 필요한 기본적인 시스템 자원을 차지하는 메모리 영역을 의미로,서비스 운영에 필요한 메모리 외에 꼭 확보해야 하는 영역
- 사용자당 필요메모리: 한 명의 사용자가 서버에 접속하여 사용할 때 필요한 평균 메모리 양으로, 동시 사용자 수에 따라 필요한 메모리 용량을 추정
- 동시 사용자수: 동시에 접속하여 서버에 요청을 보내는 사용자 수
- OS 버퍼캐쉬 보정: 운영체제에서 파일 입출력을 최적화하기 위해 사용하는 버퍼 캐시 메모리의 보정을 의미하며 파일 입출력이 많은 애플리케이션의 성능을 높이기 위해 필수적이다.
- 미들웨어 버퍼캐쉬 메모리: 미들웨어에서 사용하는 버퍼 캐시 메모리로, 특히 데이터베이스나 웹 서버 미들웨어에서 성능 최적화를 위해 캐시 메모리를 많이 활용되며 이것을 반영해 서버의 메모리 용량을 추가로 확보하는 것이 중요
- 시스템 여유율: 서버의 성능을 최적화하면서도 여유 자원을 확보하여 예기치 못한 상황에 대비하는 비율
=>여기서 버퍼캐쉬란? 자주 접근하는 데이터를 메모리에 저장해 두었다가 필요할 때 빠르게 제공하는 임시 저장 공간

3.디스크 산정
- 디스크 규모 사전 시 가장 중요한 고려요소는 데이터 백업 방안이다.
- 백업 정책에 의해 디스크의 요구량은 큰 차이를 가진다.
- 총 8가지의 항목이 존재
- 시스템 영역: 서버 운영에 필요한 기본적인 시스템 자원을 차지하는 메모리 영역을 의미로,서비스 운영에 필요한 메모리 외에 꼭 확보해야 하는 영역
- 응용 프로그램 영역: 서버에 설치되는 응용 프로그램 및 애플리케이션 관련 파일들이 차지하는 공간
- SWAP 영역: 메모리가 부족할 때 사용되는 가상 메모리 영역으로써, 물리적인 메모리가 부족할시 SWAP영역에 데이터를 임시로 저장하는 역할이고 보통 메모리(RAM) 용량에 비례하여 SWAP 영역을 설정
- 파일 시스템 오버헤드: 파일 시스템을 구성하는 데 필요한 추가적인 메타데이터(데이터에 대한 데이터를 의미)나 인덱스 정보 등을 저장하는 공간이며 여기서 오버헤드란? 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리를 뜻한다.
- 시스템/데이터 디스크 여유율: 디스크 사용량이 최대치에 다다르는 것을 방지하기 위해 남겨두는 여유 공간
- 데이터 영역: 애플리케이션이나 사용자가 생성하는 주요 데이터를 저장하는 공간
- 백업 영역: 시스템이나 데이터의 백업 파일을 저장하는 공간이며 데이터 손실이나 시스템 장애에 대비하여 주기적으로 백업 파일을 생성하고 보관하는 공간이다. 백업 주기가 짧거나, 백업 파일이 큰 경우 이 영역을 넉넉하게 설정해야 한다.
- RAID 여유율: RAID(여러 개의 디스크를 하나로 묶어 하나의 논리적 디스크로 작동)구성을 사용하는 경우, 디스크 중 일부를 백업 및 데이터 중복 저장을 위해 여유 공간으로 확보하는 것이며 RAID는 데이터를 여러 디스크에 나누어 저장하여 하나의 디스크가 손상되더라도 데이터를 복구할 수 있게한다.

4.스토리지 산정
- 스토리지?컴퓨터에 데이터를 저장하는 저장소의 역할을 수행하는 부품
- 스토리지 시스템의 규모산정의 첫 단계는 시스템의 성능평가지표를 결정하는 것이다.
-IOPS(Input/Output operation Per Second, 초당 I/O(입출력)동작 처리 건수)를 사용하여 기준으로 나눈다.
- WEB이나 WAS서버로 쓰이는 경우는 OLTP서버에 비해 I/0가 작으므로 tmpC 성능치 크기의 0.5%를 IOPS로 산정, DB서버를 이용할 경우는 OLTP서버 산정기준을 적용(tmpC 성능치 크기의 2%를 IOPS로 산정)
