최근의 IT 환경은 기업의 비즈니스에 유연성을 제공하지만, 반면 구조의 복잡성으로 관리자가 애플리케이션 성능을 측정하거나 성능 문제 발생시 원인을 규명하는데 많은 시간과 노력, 비용을 투입해야만 하는 문제점을 초래하고 있다. 여기서 주목해야할 점은 서비스를 제공받는 불특정 다수의 사용자는 이를 전혀 고려하지 않는다는 점이다. 네트워크 인프라만 구축돼 있다면, 언제 어디서나 사용자가 원하는 모든 서비스를 빠르게 제공받기를 바랄 뿐이다. 성능 SLA의 필요성 최종 사용자가 기대하는 수준의 서비스를 제공하기 위해 기업은 갈수록 복잡해지고 대형화되는 정보 시스템의 모든 구성 요소를 고려해 성능 저하를 유발시키는 원인이 무엇인지 빨리 파악해야 하며, 실제 웹 서비스에 영향을 미치기 이전에 성능상의 원인을 제거해야만 한다. 이를 통해 전산 운영 환경을 24x7의 상태로 최적의 상태로 유지·관리해 사용자에게 양질의 서비스를 항상 제공할 수 있어야 한다. 따라서 성능 관리 분야도 변화를 모색해야 하는 시점이 된 것이다. 최근 성능 관리 분야에서도 SLA(Service Level Agreement) 도입에 대한 논의가 활발히 제기되고 있으며 관련 제품과 서비스가 속속 등장하고 있다. 성능 SLA란 일반적인 개념의 SLA와는 차이가 있다. 성능 SLA는 정보 시스템의 응답 시간에 대한 서비스 약속으로, 정보 시스템의 성능 수준을 일정한 수준으로 유지하겠다는 조직과 현업 조직과의 협약이라고 볼 수 있다. 따라서 성능 SLA를 구축할 경우 기업 내 각 부서와 팀별로 사용된 정보 시스템의 사용율이 어느 정도인지를 분석할 수 있으며, 이를 기반으로 전산실은 정보 시스템 서비스 수준을 향상시키는데 기여함과 동시에 향후 운영 계획에 대한 바람직한 전략을 수립할 수 있다. 또한 데이터베이스 서버, 애플리케이션 서버, 웹 서버, 네트워크 등을 포함해 전체 시스템이 성능을 제대로 발휘하고 있는지, 요구되는 시스템 증설과 성능 개선이 어느 정도의 수준인지 등을 분석할 수 있다. 엔드 투 엔드의 성능 분석 실제 운영 환경에서 수집한 성능 관련 데이터를 기반으로 실제 사용자가 느끼는 응답 시간을 측정하고, 이를 다시 구성 요소별로 트랜잭션 처리에 소요되는 시간을 구분해 성능 저하를 유발하는 병목 요소들을 신속, 정확하게 규명하는 자원에 대한 효율적인 관리를 할 수 있는 솔루션 공급이 줄 잇고 있다. 프리사이즈/인사이트의 경우는 데모 방식의 샘플링 데이터를 추출하는 것이 아니라, 실제 서비스가 제공되는 운영 환경에서 수집된 성능 관련 데이터를 기반으로 한다는 점에서 차별화된다. 대표적으로 프리사이즈/인사이트의 구성 요소와 성능 분석 방법을 살펴본다. 3가지 구성 요소프리사이즈/인사이트는 적은 오버헤드로 엔드 투 엔드 성능 측정이 가능하도록 분산 아키텍처를 채택하고 있다. 따라서 네트워크, 웹 서버, 애플리케이션 서버, 데이터베이스 서버 등 컴포넌트별로 소요된 시간을 측정할 수 있도록 인프라 전반에 걸쳐 지속적으로 정보를 수집한다. 이렇게 수집된 정보를 이용해 관리자는 문제 요소를 찾을 수 있으며, 상황에 따른 탄력적인 데이터 운영을 위해 데이터에 대한 성능 기초와 성능 목표에 비교할 수도 있다. 비즈니스의 우선 순위에 기초를 둔 자원을 보여주는 한편, 자원 전체 응답 시간에서 가장 높은 비중을 차지하는 구성 요소를 강조해서 보여준다. 프리사이즈/인사이트는 크게 에이전트, 매트릭스 리포지토리, 콘솔 등 3가지 컴포넌트로 구성되며 기능을 살펴보면 다음과 같다.
·프리사이즈/인사이트 에이전트에이전트는 크게 운영체제 에이전트와 애플리케이션 에이전트로 구성된다. 운영체제 에이전트는 적은 오버헤드로 성능 매트릭스를 수집하고 저장한다. 콘솔은 매트릭스를 집합시키는 데 사용되거나 엔드 투 엔드 비즈니스 업무/운영을 생성하는 데 사용된다. 에이전트는 오직 서버에 설치되며, 운영체제 에이전트로부터 서버 서비스 시간이나 네트워크 서비스 시간을 발생시키지 않는다. 클라이언트 기반의 접근법 한계를 극복하는 중요한 장점이라고 할 수 있다. 애플리케이션 에이전트는 애플리케이션 서버에서 구동된다. 이런 에이전트들은 애플리케이션 트랜잭션을 이해하고, 엔드 투 엔드 애플리케이션 응답 시간에 대한 세분화된 서비스 시간을 조합시킬 수 있다.
·프리사이즈/인사이트 메트릭 리포지토리메트릭 리포지토리는 에이전트에 의해 수집된 모든 데이터를 저장하고 절차화한다. 에이전트에 의해 소비되는 자원을 최소화하고 부하를 주지 않도록, 데이터가 수집된 서버가 아닌 원격에서 간접으로 절차화한다. 장단 기간의 동향과 분석 기술은 정상적인 애플리케이션 행동을 이해하는데 주로 사용된다. 성능 웨어하우스 내에 정의된 서비스 기초는 정상에서 벗어난 성능 저하를 탐지해 내고, SLA를 준수하는 능력을 갖고 있다. 성능 정보에 대한 요청은 콘솔에 구성되고, 성능 웨어하우스에서 되찾을 수 있다.
·프리사이즈/인사이트 콘솔콘솔은 히스토리 성능 정보를 보여주는 윈도우라고 보면 된다. 상호 관련있는 GUI는 사용자에게 시간에 따른 검색과 성능 정보에 대한 쿼리 생성을 허용한다. 특정 포맷에 의해 제공되는 그래픽 결과는 성능에 대한 이해와 문제 파악을 용이하게 해준다. 계층적인 레이아웃은 다른 성능 매트릭스 간의 관계를 조사하는 드릴다운 기능을 강화한다.성능 분석 방법1) 성능 통합 관리 동일한 방법론에 의한 모든 IT 구성 요소의 성능 관련 데이터를 수집 측정해 성능에 문제가 발생했을 경우 책임 소재를 명확하게 구분한다. 비즈니스 로직(Business Logic)이 매우 복잡하게 처리되는 구조를 가진 환경에서 애플리케이션 서비스를 제공하는데 사용되는 구성 요소들(네트워크, 오라클, 웹, SAP, 턱시도, J2EE)의 성능 관련 데이터를 한 개의 콘솔에서 통합 관리할 수 있다. 이는 애플리케이션 운영시 IT 자원의 효율성을 쉽고 빠르게 검증할 수 있으며, 각 구성 요소별로 처리 시간을 측정하기 때문에 성능 문제가 야기됐을 때 관리자가 신속, 정확하게 근본적인 원인을 규명할 수 있다는 이점을 제공한다. 2) 베이스라인을 통한 지속적인 성능 관리 관리자는 성능 웨어하우스에 축적된 데이터를 근간으로 이상적인 서비스를 제공한 특정일자 혹은 특정기간(주/월) 동안의 데이터를 기준으로 성능 베이스라인을 직접 설정할 수 있으며, 미리 정의된 성능 베이스라인과 비교해 성능 추이를 분석할 수 있다. 또한 구성 요소별로 설치된 에이전트에 수집된 데이터를 기반으로 관리자는 운영 시스템에서 제공하는 서비스가 원활하지 못한 시점의 성능 관련 데이터를 웹 서버, 애플리케이션 서버, 데이터베이스 서버, 네트워크 등으로 구분해 처리 소요 시간을 측정할 수 있다. 관리자는 성능에 악영향을 끼치는 병목 요소들이 어느 부분에서 발생되는지 확인해 신속하게 대처할 수 있다.
3) SLA을 통한 사용자 중심의 서비스 수준 관리 관리자가 각 구성 요소별로 소요되는 예상 처리 시간을 미리 정의한 후, SLA가 가능하도록 3가지 상황(보통·경고·위급)에 대해 SLA에 위배되는 사항들을 점검할 수 있다. 담당자가 미리 정의해 놓은 SLA에 위배되는 트랜잭션을 노란색과 붉은색으로 도식화해 보여줌으로써 관리자는 직관적으로 판단할 수 있다. 서비스 수준 관리의 대상 항목 선정 기준은 기업에 따라 다소 차이가 있을 수는 있으나, 안정적인 시스템의 운영과 사용자에게 양질의 서비스를 항상 제공하겠다는 최종 목표는 동일하다. 중요한 것은 SLA의 임계치 설정시 기업내의 운영중인 시스템 환경과 애플리케이션의 비즈니스 로직 등을 충분히 고려해 타당한 지표를 수립해야 한다는 점이다. 주요 SLA 관리 항목으로는 사용자 SLA, 운영 시스템 SLA, 데이터베이스 SLA, 웹 애플리케이션 SLA, 네트워크 SLA 등이 있다. ·엔드 투 엔드 SLA엔드 투 엔드 SLA는 서비스가 제공되는 운영 환경에서 사용자가 실제 느끼게 되는 서비스 응답 시간을 사용자별로 구분해, 전산센터에 위치한 운영 담당자는 어떤 사용자가 어느 정도의 서비스 수준을 제공받는지에 대한 정량적인 수치를 확인할 수 있다. 담당자는 구성 요소별로 구분하고 이를 드릴다운 방식으로 상세 분석해 서비스 응답 시간이 길게 나타난 사용자가 요청한 서비스는 무엇인지, 처리 소요 시간이 과다하게 발생하는 원인이 웹 애플리케이션 처리 지연 시간에 있는지 DB 애플리케이션 처리 속도, 네트워크 병목 현상에 있는지를 파악할 수 있다. 만약 웹 애플리케이션에 처리 소요 시간이 집중되면, 사용하는 URL 파일들의 처리 소요 시간을 분석한다. 운영 애플리케이션을 처리하는데 많은 시간이 소요됐는지, 혹은 네트워크에서 많은 트래픽이 발생했는지 등에 대해 정확한 성능 데이터를 토대로 정확한 병목 원인을 찾아낼 수 있다. ·운영 시스템 SLA e-비즈니스 환경에서 한 대의 DB 서버와 다수의 웹 서버로 구성하고 웹 서버들간의 로드밸런싱 환경을 구축하는 것이 일반적이다. 이런 운영 서버의 트랜잭션 서비스 처리 시간에 대한 비교 분석을 통해 특정 서버에 처리 시간이 집중되는 경우는 단기적으로는 운영 애플리케이션의 처리 속도 개선으로 서버 운영 자원을 보다 확보할 수 있을 것이다. 장기적인 관점에서는 애플리케이션의 분산 정책을 통해 운영 자원의 가용성을 확보할 수 있다. 이런 성능 관련 데이터를 토대로 향후 시스템의 투자에 대한 지표를 수립할 수 있게 된다. 또한 웹 서버들 간의 로드밸런싱이 효율적으로 수행되고 있는지도 검증할 수 있다.
·데이터베이스 SLA 전반적인 서비스 응답 속도에 가장 큰 영향을 미치는 구성 요소 가운데 하나가 오라클 인스턴스 최적화와 DB 애플리케이션의 처리 속도 개선이라고 할 수 있다. 오라클 인스턴스의 효율성을 검증하기 위해 프리사이즈/인사이트는 애플리케이션 처리에 소모되는 자원을 4가지로 분해해 측정한다. 드릴다운 방식으로 수행된 프로그램 정보, 오라클 클라이언트, SQL 문장에 대한 상세한 정보를 통해 문제 원인을 쉽게 규명할 수 있다. 또한 이미 국내 많은 기업과 공공기관에 공급된 데이터베이스 성능 관리 솔루션인 프리사이즈 오라클과 연계해 문제를 야기시킨 SQL 문장은 어떤 것이며, 오라클 관점에서의 대기 시간이 얼마나 발생됐는지에 대한 정량적인 수치를 바탕으로 데이터베이스 애플리케이션 성능 개선을 빠르고 쉽게 할 수 있다.
·웹 애플리케이션 SLA 최근 자바 기반의 웹 애플리케이션의 개발과 다양한 컨텐츠들이 등장하면서 사용자는 점점 다양한 서비스를 제공받을 수 있게 됐다. 그러나 복잡해지는 웹 애플리케이션들의 비즈니스 로직으로 인해 처리 속도는 저하되는 경향을 보이고 있다. 이에 따라 관리자나 개발자들은 트랜잭션 서비스 요청시 웹 페이지별로 처리되는데 소요되는 시간과 요청 회수 등 성능 관련 데이터를 수집하는데 많은 시간과 비용을 투자하고 있으나, 실제 서비스가 제공되는 운영 환경에서 데이터를 추출하는데 많은 어려움이 따르고 있다. 자동화된 툴의 활용으로 웹 URL 파일별로 웹 서버에서 처리하는 백엔드 시간(프로세싱 시간)과 네트워크 시간으로 구분해 각각의 처리 소요 시간 측정하고 수집된 정확한 성능 관련 데이터를 근간으로 웹 서비스의 속도 개선에 투자되는 시간과 비용을 크게 절감할 수 있다. 또한 특정 웹 애플리케이션에 대한 성능 측정, 예를 들어 게시판에 접속하는 사용자에게 제공되는 서비스 수준 파악이나 서비스 성능에 좋지 않은 영향을 미치는 URL 파일을 추출해 빠르게 개선할 수 있다.
·네트워크 SLA 물리적인 네트워크를 통해 전송되는 패킷 크기와 전송 시간을 측정해 네트워크 상황을 모니터링한다. 운영 환경의 네트워크 대역폭이 아주 양호하다는 전제하에 네트워크 소요 시간이 많다는 의미는 전송되는 파일이 매우 크거나 과다한 패킷 손실로 인한 재전송 회수가 매우 빈도 높게 발생하고 있다는 것으로 파악할 수 있다. 또한 시스템 운영자는 정기적인 모니터링을 통해 특정 사용자가 용량이 큰 파일을 불필요하게 업로드/다운로드해 네트워크 대역폭의 가용성을 감소시킬 수 있는 것과 같은 비정상적인 행위에 대해 감시 체제를 구축할 수 있다. 대부분의 경우, ISP의 네트워크를 사용하는 경우가 많은데 네트워크 세그먼트를 이용해 서비스를 제공하는 ISP를 구분해 서비스 수준을 평가할 수 있는 정확한 자료를 추출할 수 있다. @