출처:  http://www.dbguide.net/know/know101003.jsp?IDX=215&catenum=14



스토리지의 성능 분석, 필수 요소로 부각
컴퓨터 성능 분석의 역사는 컴퓨터가 세상에 존재하면서 시작되었다. 컴퓨터의 성능 분석을 흔히 예술이라고 이야기하는데 이것은 바로 기술적인 측면과 직관적인 사고의 모드를 모두 포함하고 있기 때문이라고 할 수 있다. 성능 분석 방법으로는 단순하게 추론, 통계, 행렬 수학과 같은 수학적인 분야가 있다. 일반적으로 시스템 성능을 정확하게 분석하기 위해서는 시간을 미리 정해 놓은 다음 지속적으로 데이터를 모아 다양한 수학적인 분석 기술을 통해서 분석하며, 전통적으로 고비용의 트렌드 분석, 통계 또는 확률 분석 등이 원본 데이터를 이용하여 성능을 분석하여 왔다. 이번 호에는 스토리지 성능 분석을 중심으로 컴퓨터의 성능 분석의 개념과 성능 분석 과정을 살펴보고자 한다.


연재목차

1회. 스토리지 전략
스토리지 전략이 필요한 이유, 데이터 양이 기하급수적으로 증가하고 있는 오늘날 스토리지 매니저의 역할

2회. 스토리지 테크놀러지 리뷰
디스크 스토리지, 테이프 스토리지, 자동화 테이프 라이브러리, NAS/SAN 등 스토리지 관련 주요 기술에 대한 개괄적인 소개

3회. 백업과 리스토어, 재해복구
백업/리스토어, 재해복구의 개념, 자동화 백업 및 리스토어, 데이터베이스 백업/리스토어 기술, 전략적 백업 및 리스토어를 위한 기술, DR을 위한 플랜 및 재해를 당한 경우의 대처 방안

4회. 성능 분석 (이번 회)
성능분석의 개념 및 스토리지 성능 분석을 위한 과제


5회. 용량 계획
스토리지 용량 계획의 개념 및 스토리지 용량 플랜과 일반적인 오류들



성능 분석은 컴퓨터가 운영되고 있는 상태에서 시스템이 언제 부하가 걸리거나 어디에 부하가 걸리는가를 확인하기 위한 다양한 이벤트를 측정하는 과정을 말한다. 모든 컴퓨팅 시스템의 운영상 부하에 영향을 주는 요소는 CPU, 메모리, I/O, 네트워크 등 4가지이다. I/O 성능이 좋지 않을 경우 디바이스나 I/O 버스의 속도가 늦어질 수 있다. 또한 CPU 캐시가 업무량에 비해 너무 작아서 성능을 낼 수 없을 수도 있다. 특히, 네트워크는 4가지 중에서 가장 문제점을 야기시킬 수 있는 요소를 많이 가지고 있는데, 그것은 바로 라우터, 스위치, 브릿지, 허브, 케이블 또는 어댑터 등이 연결되어 있을 수 있기 때문이다.



성능 분석의 종류

1) 수학적 기법을 이용한 성능 분석
수학을 이용하여 컴퓨팅 시스템 성능을 분석하기 위해서는 복잡한 계산이나 수식을 사용할 필요 없이 그저 간단한 수학만으로도 최상의 성능 분석을 실행할 수 있으며 그 중에서 행렬 수학은 성능 분석을 위해 가장 중요하면서 간단한 방법이다.


2) 추정 기법을 이용한 성능 분석

추정 기법은 숫자의 변화를 단순하게 일렬로 나열한 후 숫자의 변화 트렌드를 분석하여 이후에 나올 수 있는 숫자를 추정하는 기법을 의미한다. 그림 1은 한 시스템의 전체 I/O의 변화 곡선을 보여주고 있다. 그림에서처럼 W-8 이후의 I/O 추가에 대해서 추정하여 변화의 추이를 확인할 수 있게 된다. 이 변화 곡선은 대개 스프레드시트 프로그램을 통해서 작성할 수 있다. W-1부터 W-7까지 보라색 막대는 실제 데이터를 통해서 얻은 그래프이다. 그러나 W-8부터 W-12는 W-7의 데이터를 기본으로 추정을 하여 I/O 숫자 추정을 통해서 증가분의 추정 데이터를 얻을 수 있게 된다.

이 그래프를 통해서 우리는 어떻게 I/O가 현재의 시스템상에서 어떻게 변화하여 추후 어떤 방향으로 나갈 것인가를 예측할 수 있게 된다. 그러나 한가지 주의할 것은 날씨 예측처럼 언제나 변화에 대한 추정과 예측이 정확하게 100% 맞지는 않는다는 것이다. 이러한 변화 분석을 전체 그림의 한 부분으로 인식하는 것도 매우 중요하다. 또한, 예측 분석은 변경될 수 있기 때문에 추정 데이터를 고려하는데 있어서 제 3의 환경 또한 염두에 두어야 할 것이다.

I/O의 특성 중에 하나는 I/O 숫자가 증가함에 따라서 디스크 또는 디스크 어레이의 응답 시간은 어느 지점까지는 매우 느리게 증가한다는 것이다. 응답 시간이 갑작스럽게 증가한다는 것은 디바이스의 용량이 초과했다는 것을 의미한다. 그림 2는 이러한 상황을 보여주고 있다.

그림 2에서 갑자기 증가하고 있는 지점은 I/O가 갑작스럽게 증가하여 I/O의 성능이 떨어지는 것을 알려준다. 이것은 I/O에 있어서 매우 위험한 영역(Zone)이다. 일단 위험 영역에 도달하면 시스템은 문제를 발생할 수 있는 여지가 있다는 것을 명심해 두어야 한다.

위 곡선에서 위험 영역에 언제 도달할 것인가를 예측할 수 있다. 실제로 이 영역에 도달할 때를 알기 위해서 지속적으로 테스트를 한다거나 행렬 수학을 이용하여 위험 영역을 찾아낼 수도 있다.

대부분의 회사에서는 이 영역을 확인하기 위해서 하드웨어를 지속적으로 테스트할 수 있는 좋은 여건을 가진 회사가 그리 많지 않기 때문에 행렬 수학을 대체적으로 이용하여 이 위험 영역을 찾아내는 것이 시간상으로나 비용적인 측면에서 유리할 수 있다.



3) 행렬 수학과 모델링을 이용한 성능 분석

행렬 수학은 종종 스테이션, 요구와 행렬로 구성된 매우 복잡한 시스템이라고 할 수 있다.

매우 단순한 시스템의 예를 들자면 행렬 수학은 이발소나 미장원으로 볼 수 있다. 그리고 스테이션은 머리를 손질하는 사람이며, 요구는 머리를 자르거나 손질하기 위해서 미장원 또는 이발소를 찾는 손님, 그리고 고객이 머리 손질 서비스를 받기 위해서 순서를 기다려야만 하는데 이러한 순서가 바로 행렬이라고 할 수 있다.

이 행렬을 짧게 하거나 피하는 방법은 더 많은 스테이션을 만들어서 서비스의 양을 증가시키거나 요구의 양을 줄이는 것이다. 미용사가 손님을 많이 받기 위해서 머리 손질을 빨리 하는 것은 그리 좋은 방법이 아닐 것이다. 또한 손님이 머리 손질 서비스를 받기 위해서 이발소나 미장원을 찾아온다면 이 요구 또한 줄일 수는 없다.

만약 한 명의 미용사가 한 손님의 머리는 손질하는 데 20분이 걸린다면, 두 명의 미용사를 둔다면 20분에 2명의 손님에게 서비스를 제공할 수 있을 것이다. 두 개의 스테이션에서 최적의 도달율은 20분에 2명의 손님을 해결할 수 있다는 것이다. 이 도달율과 서비스율이 균형을 이루게 되면 행렬은 만들어지지 않는다. 그러나 도달율이 매 20분에 3명의 고객으로 증가한다면 한 명의 고객은 반드시 다른 손님이 머리를 손질하는 20분 동안은 기다려야만 한다. 이 때 하나의 행렬이 한 명의 고객으로 구성된다. 도달율이 증가하면 행렬의 길이는 스테이션을 증가하기 전까지 길어지게 된다.

아주 간단하게 행렬에 대해 설명해 봤다. 사실 행렬은 상당히 어려운 수학의 한 분야이다. 그러나 행렬의 의미를 알고 이것을 실제로 시스템에 도입하고 성능을 분석하는데 활용하면 많은 도움이 된다. 행렬에 대한 필요성을 깨닫는 것 자체에 큰 의미와 발전이 있다고 본다.




성능 분석 과정

기업의 IT 담당자가 성능 분석을 하기 위해서 가장 기본적으로 해야 할 일은 애플리케이션 프로파일, 데이터 수집, 성능 분석 리포트를 작성하는 것이다.

1) 애플리케이션 프로파일

성능 분석을 위해 제일 처음 해야 할 일은 바로 애플리케이션의 성능 분석을 시행하는 것이다. 이를 위해 광범위하면서도 정확한 시스템 자료를 가지고 있는 애플리케이션 지원 부서의 도움을 받아 애플리케이션의 프로파일을 위한 정보를 얻고, 도면상에 애플리케이션 구성을 정확하게 그려서 한눈에 시스템 구성을 볼 수 있도록 준비해 두어야 한다. 시스템 구성도에는 하드웨어, 소프트웨어, 네트워크 등 가능한 한 애플리케이션에 대한 모든 자료가 포함돼야 한다.

2) 데이터 수집

컴퓨팅 시스템 성능 측정 시 발생할 수 있는 어려움은 바로 소프트웨어의 성능을 어떻게 분석하느냐 하는 것이다. 데이터 수집이 모두 끝나면 애플리케이션 분석가, 시스템 운영자, 네트워크 지원 기술자 등과 토론을 통해 데이터의 특성과 성능 분석에 대하여 결론을 내려야 한다. 한편, 시스템 사용이 가장 많은 시간대에 소프트웨어 자료를 수집하는 과정은 실제 컴퓨팅 시스템에서 발생되는 문제점보다 더욱 나쁜 문제점이 발생할 수도 있다는 것을 염두에 두어야 한다.

3) 관리 리포트 작성

시스템 구성도와 데이터를 통해 얻은 성능에 대한 결론을 리포트로 작성하기 위해서는 다음의 4가지 내용이 수록되어 있어야 한다.

● 관리 요약(Management Summary): 관리 요약은 발생된 문제를 먼저 정의한 후 문제가 발생했을 때 어떻게 해결해야 하는가에 대한 추천 사항을 기술하는 것이다. 추천 사항은 보통 한 개 이상을 기술하여 선택할 수 있도록 하는 것이 좋으며, 무엇보다도 만약 추천 사항을 실행하지 않았을 경우 향후에 미칠 영향에 대해서 자세하게 기술해야 한다.

● 시스템 상세 기술(System Descrip- tion): 시스템 상세 기술은 하드웨어와 애플리케이션에 대한 성능 분석 그래프가 포함되며 그래프가 의미하는 바를 상세하게 설명해 주어야 한다. 이는 다음 단계인 문제 발생 영역을 이해시키는 데 큰 도움이 된다.

● 문제발생 영역(Problem area): 문제 발생 영역 리포트 작성 시 대개의 경우 데이터, CPU, 네트워크상의 모든 문제점을 알게 된다. 즉 데이터가 하나의 디스크에 저장되어 있어 데이터를 여러 대의 디스크에 분산시켜서 저장할 필요성, CPU가 많은 경우에 문제를 발생시킬 여지가 가장 많다는 것, 네트워크의 경우에는 그리 많은 문제를 발생시키지는 않으나 데이터베이스 메모리 버퍼를 확장시켜야 할 지 등에 대한 결정에 직면하게 될 수도 있는 것이다.

● 추천 사항(Recommendations): 리포트의 가장 마지막 단계인 추천 사항 항목에서는 위 3개 항목에서 기술된 문제점들을 어떻게 해결할 것인가에 대한 내용이 담겨 있어야 하고, 요점만을 간단히 정리하여 간단 명료하게 기술하는 것이 중요하다. 또한 문제점을 해결하기 위해서 필요한 비용이 얼마나 드는지, 어떻게 하면 용이하게 해결할 수 있는지에 대해서도 제시되어야 한다.

4) 최종 체크리스트
다음은 관리 리포트 작성 시 최종적으로 숙지할 사항이다.

- 데이터의 정확한 분석: 가능한 한 데이터를 정확하고 분명하게 분석하고 조사하는 작업을 그 무엇보다 중요시 다루어야 할 것이다. 데이터에 근거하지 않고 추측에 근거한다면 올바른 결론을 낼 수 없을 것이다.

- 간결한 리포트 작성: 보통 성능 분석 리포트를 작성할 때 분석에 대해 장황하고 세밀하게 정리하는 것을 지양하고 간결하고 명확하게 작성되어야 한다.

- 질문과 의문에 대한 사전 준비: 성능 분석 리포트를 작성하여 임원진에게 프레젠테이션을 하거나 리포트를 제출할 때 임원진들은 그 결과에 대한 수많은 질문을 하게 될 것이다. 이를 위해 사전에 리포트에 임원진에서 제기할 만한 질의에 대한 답변을 정리해 두어 임원진에서 보다 빠른 결정을 할 수 있도록 준비해야 한다.

- 다른 의견을 제시했을 경우의 대처 방안: 만약 성능 분석에 대한 결과에 대해서 임원진이 다른 의견을 제시했을 경우에 이에 대해서 반대를 하지 말아야 한다. 현재는 컴퓨팅 시스템이 매우 복잡하게 구성되어 있으며 여러 다른 상황과 밀접하게 맞물려 있기 때문에 쉽게 영향을 받을 수 있기 때문이다.

- 비용 효율적인 성능 분석 실시: 때때로 오랜 시간에 걸쳐 복잡한 수학적 분석 기법으로 성능을 분석하려고 많은 시간을 소비하기도 한다. 그러나 복잡한 수학적 기법을 분석하는 것도 중요하지만 시스템 관리에 있어서 오랜 경험을 바탕으로 하는 성능 분석은 기본적인 수학적 기법만을 이용하는 것으로도 훌륭한 성능 분석 결과를 도출해 낼 수 있다.



성능 분석 프로세스 구성도
그림 3은 이러한 과정들이 담긴 성능 분석 프로세스이다. 조직의 예산이 부족해짐에 따라 점차 비용을 가능한 한 사용하지 않고 성능 분석을 하는 방법을 모색하기 시작했고, 그러한 방법의 하나로 바로 그림 3과 같은 일반적인 방법이 많이 사용되고 있다.




스토리지 성능 분석의 변화
고도화된 IT 환경에서 시스템 실무자의 가장 중요한 역할은 바로 체계적인 분석을 통한 시스템 활용도를 높이는 것이다. 그런 의미에서 탄생한 것이 성능 분석이라는 분야이다. 시스템을 생산적으로 관리하고 도입할 것인가를 결정하기 이전에 철저하게 현재의 시스템을 분석하고 이것을 어떻게 사용하고 관리할 것인가에 대한 의미있는 관리 리포트를 작성하여 관리하는 것은 매우 중요하다.

성능 관리는 이제야 막 연구하기 시작한 초기 시점이라고 할 수 있다. 컴퓨팅 환경의 성능 분석에서 나아가 스토리지 성능 분석은 스토리지 어레이, NAS, SAN, 그리고 스토리지 서브시스템과 같은 더욱 복잡한 이슈의 도발이라고 할 수 있다.

이 글에서 스토리지 성능 분석이 무엇인가에 관해 매우 단순하고 대략적인 의미만을 거론했지만, 이 의미 역시 몇 년이 지나고 나면 틀림없이 많이 변화될 것이다. 오래된 툴은 다양한 네트워크 아키텍처와 프로토콜, 그리고 스토리지 디바이스로 더욱 견고한 가지를 치고 뻗어나갈 것은 분명하다.

+ Recent posts