애플리케이션 성능관리 솔루션의 모든 것
상태바
애플리케이션 성능관리 솔루션의 모든 것
  • 홍성각 넷크루즈 사장
  • 승인 2002.02.16 00:00
  • 댓글 0
이 기사를 공유합니다

지난호에서는 정보시스템 서비스 품질의 평가 기준으로 SLA를 언급하면서, 가장 중요한 관리지표 하나가 애플리케이션 응답시간이라고 지적한 바 있다. 그리고 APM이란 애플리케이션 응답시간에 대한 관찰, 분석, 문제해결, 그리고 예측하는 제반 관리 영역을 의미한다고 말했다. 이번호에서는 애플리케이션 응답시간을 둘러싼 여러 기술적인 이슈와 도구들에 대해 상세히 알아보도록 하자. <편집자>


네트워크상에서 운영되는 애플리케이션의 성능은 아래와 같이 다양한 요소에 의해 영향을 받을 수 있다.

· 애플리케이션 서버의 응답속도
· 백 엔드 서버, 특히 데이터베이스 서버의 응답속도
· 물리적 전송지연에 영향을 미치는 클라이언트와 서버의 물리적 거리
· 클라이언트 서버 사이에 위치하는 라우터나 스위치 등 네트워크 장비에 의한 지연
· 애플리케이션의 디자인과 구현과정에서의 네트워크 친숙도
· 애플리케이션에 영향을 미치는 네트워크 혼잡
· 클라이언트 개별 시스템의 성능

위에서 언급한 각각의 요소들은 또한 다른 부분 요소들을 포함할 수 있는데, 예로 애플리케이션 서버의 성능은 아래와 같은 하위의 성능에 의하여 영향을 받게 된다.

· 메모리, CPU, 디스크 액세스 속도, 버스 성능을 포함하는 하드웨어 성능
· 멀티스레딩이나 프로세스의 블록을 처리하는 소프트웨어 성능
· 네트워크 인터페이스로부터 데이터를 송수신하는 버퍼의 효율성을 포함하는 OS 성능

이렇게 다양한 요인에 의하여 영향을 받고 있는 애플리케이션 성능 이슈는 이를 바라보는 사람들의 역할에 따라 많은 차이를 보인다. 예로, 최종 사용자는 자신들이 애플리케이션이 왜 그렇게 느린지 알고 싶어하며, 애플리케이션 개발 담당자는 그 구조나 구성 또는 그 외의 무엇을 수정해야 하는지 알고 싶어할 것이고, 시스템 관리자는 자신의 서버가 성능 저하를 일으키지 않고 사용자들의 요구들 수용할 수 있는지를 알고 싶어할 것이다. 또한 네트워크 관리자는 네트워크가 문제의 원인인지 아닌지 즉 애플리케이션의 성능 중 네트워크의 요인이 얼마나 되는지를 알고 싶어할 것이다.

그렇다면 애플리케이션 응답시간을 측정하는 방법에는 어떤 것들이 있는지 그리고 그것들의 장단점들은 무엇인지 본격적으로 알아보도록 하자.

1. ARM API : 애플리케이션 관점의 성능 측정

ARM(Application Response Measurement) API(Application Programming Interface)는 애플리케이션이 어떻게 스스로의 성능을 측정할 수 있는지에 대해 규정한 소프트웨어 규약이다. ARM은 애플리케이션 개발자들이 자신들의 코드 중 주요한 포인트에 ARM 함수를 삽입하도록 하여, 성능 계산에 필요한 시간 정보를 생성하여 준다.

<그림 1>에서 보듯이 애플리케이션에서 해야 할 것은 트랜잭션이 시작하기 전에 ARM API 함수를 호출하고 종료한 후에 다시 함수를 호출하는 것뿐이다. 이러한 API는 에이전트(Agent)에 의해 지원되는데, 이러한 에이전트가 트랜잭션을 측정하고 관찰하여 관리 애플리케이션에 필요한 정보를 제공하게 된다. ARM 함수는 애플리케이션, 트랙잭션 및 사용자를 정의하고, 트랜잭션이 완료되었을 때 각각의 상태 정보를 제공한다.

ARM API를 이용하는 경우 관리자는 불만족스러운 고객의 요청에 앞서 트랙잰션의 성공 여부를 감지할 수 있고, 정확한 응답시간을 측정할 수 있으며, 실제적인 부하량을 계산할 수도 있다. 또한 하위 트랙잭션에 ARM 함수를 추가로 삽입함으로써 성능 저하 현상이 발생하는 경우 그 원인을 찾아 개선하는 효과를 얻을 수도 있다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.