Contents

용어

AliveNotice

일반적으로 넷퍼넬 API 적용시에 해당 요청이 완료된 시점에 완료 요청을 보내도록 하는 일회성 사용 방법에 반해 AliveNotice는 한 번 발급 받은 키를 완료(반환)하지 않고 해당 요청을 원하는 종료 시점에서 완료하도록 합니다.

해당 방법은 한정된 자원을 좀 더 제한을 두고 사용하고 싶을 때 쓰이는 방법이지만, 도중에 여러 경우의 수 때문에 완료가 잘 되지 않을 경우 서비스하기 어려울 수 있다는 점에서 권장하지는 않습니다.

APM (Application Performance Management)

실제 서비스 되고 있는 애플리케이션 코드 및 운영 레벨에 대한 성능적 관점에서의 부하량 모니터링 및 장애 원인 분석 등 성능 장애 대응 전략을 수립하고 지속적인 성능 관리 체계를 구축합니다.

Dynamic 진입 허용 최대값

Dynamic 액션들의 진입 허용수를 늘일 수 있는 최대값

Dynamic 진입 허용 최소값

Dynamic 액션들의 진입 허용수를 줄일 수 있는 최소값

IC (Intelligent Control) 서버

TS서버에 연결되어 APM정보를 토대로 설정된 규칙에 의해 서비스/액션들의 진입 허용수, 차단, 우회 등의 액션을 설정

Smart 컨트롤

넷퍼넬의 처리 시간 기준 값을 가지고 "상태 기준 구간 처리 시간 설정(초)"의 최소값/ 최대값에 따라 넷퍼넬 서버에서 자동으로 진입 허용수를 조절하는 기능. Dynamic 액션의 진입 허용수를 Dynamic 진입 허용 최소값/최대값 사이에서 처리 시간 기준으로 조절해 주는 기능을 말합니다.

TPS (Transaction Per Sec)

초당 처리되는 Transaction 양

TS (Transaction) 서버

사용자 브라우저와 통신하며 트래픽을 제어하는 서버.
모니터링 또한 TS서버에 접속해서 관리자가 직접 또는 자동으로 진입 허용수를 설정 할 수 있습니다. 또한, HA 구성시에 병렬로 n개 만큼 구성이 가능합니다.

규칙 세트

Intelligent 컨트롤을 수행하기 위한 규칙을 모아놓은 것으로, 예를 들어 "CPU 사용률이 90%를 넘으면 Active User수를 5% 낮춰라"와 같은 규칙들의 집합입니다.

대기 시간 (초)

사용자가 대기 창을 보고 대기하는 평균 시간

대기자 수

현재 대기 창을 보고 대기하고 있는 사용자 숫자

디버그모드

개발자가 넷퍼넬에 적용 시 테스트할 수 있는 환경을 제공합니다. 디버그 모드에서 대기창 출력 시간은 서비스 설정에서 설정 가능합니다. (기본값은 10초입니다.)

진입 요청

넷퍼넬 대기 시에 "재요청 주기 값 (최소 / 최대)"을 기준으로 주기적으로 확인 요청을 합니다. 설정 가능한 최소값은 1초입니다.

서비스

여러 개의 액션을 그룹으로 묶어주는 역할을 하는 구성 요소
포함하고 있는 액션들이 어떻게 동작해야 하는지에 대한 설정 정보를 가지고 있습니다.

서비스 응답 시간 = 처리 시간

진입이 허용된 후 완료 요청을 보낼 때까지의 시간의 평균 값
즉, 사용자가 WEB+WAS+DB를 통해서 서비스를 받는 시간을 의미합니다.
WAS의 “평균 응답 시간”과 유사한 의미의 값

액션

넷퍼넬을 구성하는 서비스 제어의 최소 단위로, 예를 들면 수강신청 서비스에서 로그인/강좌조회/신청/삭제 등이 액션으로 구분됩니다. 이 다수의 액션들이 모여서 하나의 서비스를 이루게 됩니다.

완료량

사용자의 요청이 시스템에 보내진 이후 시스템의 응답을 받았을 때의 양

완료율 (%)

고객 시스템 접근이 허용된 사용자 중에서 몇 %가 정상적으로 시스템 접근(고객서비스이용)을 마치고 넷퍼넬 시스템으로 완료 요청을 보냈는지를 나타냅니다.

완료 요청

사용자가 넷퍼넬이 적용된 웹 페이지의 특정 버튼을 눌렀을 때 실행되는 두 번째 요청으로 원하는 페이지가 출력된 이후에 자원 사용을 완료했음을 전달하는 기능

요청량 (tps)

사용자가 넷퍼넬로 요청하는 수의 합

우회

넷퍼넬 서비스에서 대기 없이 바로 고객 시스템으로 진입하게 합니다. 서비스 전체 또는 개별 액션 별로 설정이 가능합니다.

유효 타임아웃 최소 (tps)

자원을 사용하고 있는 사용자 중에서 타임아웃 시간 안에 완료 요청을 보내지 않은 사용자의 키 값은 자동으로 폐기 처분 됩니다. 이 때 기준이 되는 타임아웃 값은 '타임아웃 최소값' 과 '타임아웃 최대값' 사이에서 결정됩니다. 사용자들의 평균적인 '처리시간'을 기준으로 '타임아웃' 값을 결정 하지만 '완료량'이 '유효 타임아웃 최소 TPS' 보다 작다면 무조건 '타임아웃 최대값'으로 결정됩니다.

자원 사용량

설정된 ‘진입 허용수’ 중에서 현재 서비스를 이용하고 있는 사용자의 숫자
진입이 허용되면 +1이 되고 완료요청을 보내면 -1이 됩니다.

자원 사용률 (%)

(자원 사용량 / 진입 허용수) x 100

재요청 주기 최대값 (초)

사용자가 대기 창을 보며 대기할 때 대기 정보를 갱신하기 위해 넷퍼넬로 정보를 주기적으로 요청하게 되는데, 재요청 주기는 넷퍼넬 서버가 제공하게 되며 그 값이 가질 수 있는 최대값이 '재요청 주기 최대값'입니다.

재요청 주기 최소값 (초)

사용자가 대기 창을 보며 대기할 때 대기 정보를 갱신하기 위해 넷퍼넬로 정보를 주기적으로 요청하게 되는데, 재요청 주기는 넷퍼넬 서버가 제공하게 되며 그 값이 가질 수 있는 최소값이 '재요청 주기 최소값'입니다.

진입량

대기창이 뜨고 난 이후에 실제 대기가 다 끝나고 시스템에 요청을 보낼 때의 양

진입 요청량 (tps) = 발급량

사용자가 넷퍼넬 서버로 키 발급을 요청한 요청량. 실제 사용자가 넷퍼넬이 적용된 버튼을 누른 횟수와 같습니다.

진입 허용수

넷퍼넬을 통해서 접근하는 사용자를 동시에 몇 명까지 허용할 것인가에 대한 설정 값.
서비스 시스템의 상태나 평균 대기 시간, 평균 처리 시간 값을 참조하여 넷퍼넬 모니터링 프로그램을 통해서 진입 허용수를 실시간으로 조절 가능합니다.

Dynamic 진입 허용 최대값

Dynamic 액션들의 진입 허용수 합은 이 값을 넘지 못합니다.

Dynamic 진입 허용 최소값

Dynamic 액션의 진입 허용수 값의 합이 가질 수 있는 최소값. 만약 n개의 액션이 있다면 최초에 각 액션은 '진입 허용 최소값'/n 만큼의 진입 허용수를 가지게 됩니다. Smart 컨트롤에 의해서 각각의 Dynamic 액션들이 최소로 줄어들 수 있는 값의 기준이 됩니다.

차단

넷퍼넬 서비스에서 고객 시스템으로 진입을 차단합니다. 서비스 전체 또는 개별 액션 별로 설정이 가능합니다.

유휴상태기준 (tps)

Smart 컨트롤에 관련된 기준 값으로 요청량이 유휴상태기준보다 작으면 'Dynamic 액션'의 진입 허용수를 초기(최소값)값으로 점진적으로 이동시킵니다.

키 발급

사용자가 넷퍼넬이 적용된 웹 페이지의 특정 버튼을 눌렀을 때 실행되는 첫 번째 요청으로 사용자의 "버튼 클릭 수"와 동일한 의미의 값

타임아웃 최대값 (초)

사용자로부터 완료 메시지가 없을 때 타임아웃하는 최대값

타임아웃 최소값 (초)

사용자로부터 완료 메시지가 없을 때 타임아웃하는 최소값

타서버 키 재발급 제한 수

2대 이상의 넷퍼넬 서버들이 동작할 때, 대기 상태에서 다른 서버로 수시로 이동하면 키 값이 변경되게 되는데, 이 값 이상 서버가 변경되면 오류로 처리해서 키를 버리게 됩니다.

통계 (statistics) 서버

Transaction 서버에서 통계 정보를 실시간으로 수집하는 로그 서버
TS 서버와 별개로 단독 서버로 구성되며 통계 페이지에서 10초 평균까지의 데이터를 제공합니다. (통계 자료가 없을 경우 1분 평균 데이터)

A-Path란?

A-Path는 Universal Intelligent Control 내부에서 문의 자료를 검색할 때 XML/JSON 문서의 검색을 정의하기 위한 표준 문서 경로 검색 문법입니다.

BNF 표기법

<a-path> ::= <element>[{">"<element>}...]
<element> ::= <element_name>["^"<attribute_name>][|<restrictor>]
<element_name> ::= <element_char>+ | "[*]" | "[null]" |
"[{]" | "[[]" | "[same]" | "[parent]"["x"<number>] |"regex("<regex string>")"
<attribute_name> ::= <element_char>+
<element_char> ::= <alphaNum> | "_" | "-"
<restrictor> ::= <restrictor option>"="<value text>
<restrictor option> ::= "n" | "v" | "a:"<value text>
<value text> ::= <text> | "regex("<regex string>")"
<regex string> ::= Regular Expression
String<alphaNum> ::= A-z|0-9
<number> :: = {0-9}+

구분자

각 Element를 구분하는 역할을 합니다.

  • > : Element와 Element 사이를 구분하는 역할
  • ^ : Element에서 Element 이름과 Attribute를 구분하는 역할
  • l : 해당 Element 이름과 Element 제한자(Restrictor)를 구분하는 역할

미리 정의된 Element명

Element 이름 대신 들어갈 수 있는 미리 정의된 값들입니다.

  • [null] : 이름 없는 Element, CSV에서 사용
  • [*] : 모든 Element를 의미
  • [{] : JSON의 Object Element
  • [[] : JSON의 Array Element
  • [same] : 현재 Element와 동일한 Element
  • [parent]xN : 현재 Element의 부모 Element, (xN은 옵션이며 상위 Element를 찾아가는 횟수를 지정할 수 있습니다. 입력하지 않으면 x1입니다.)

Element 한정 수식자 (Restrictor)

Element의 값이나 Attribute의 값으로 매칭 여부를 제한하는 역할을 하는 수식자입니다.

element_name:[n|v|a:attribute_name]=value
Element 이름 뒤에 l로 해당 노드의 특성을 제한하는 것입니다.

  • n : n번째 노드만을 선택할 때 사용됩니다.
  • v : 해당 노드의 값이 value와 같은 경우에만 선택됩니다.
  • a : attribute_name : attribute_name에 해당하는 Attribute의 값이 value와 같은 경우에만 선택됩니다.
sample
 
	
	 
		jacojang
	
		
			jacob 
		
	

perf>instances>instance|n=0>name
- 4번째 줄에 있는 <name>jacojang</name>을 가리킵니다.
perf>instances>instance^id|a:id=S91
- 3번째 줄에 있는 <instance id=“S91” class=“S1”>을 가리킵니다.

Regular Expression 활용

Element 이름이나 Attribute 값, 해당 Element의 값들을 Regular Expression을 통해서 동적으로 찾을 수 있습니다.

  • perf>instances>instance>regex(na.*)

    Element의 이름이 na로 시작하는 모든 Element를 의미합니다. 즉, 4번째 줄과 7번째 줄에 있는 <name>jacojang</name><name>jacobs</name>을 모두 지칭합니다.
  • perf>instances>instance|a:id=regex(S..)>name

    “instance” Element “id” Attribute의 값이 S로 시작하는 3자리 값일 경우를 의미합니다. 이것 또한 4번째 줄과 7번째 줄에 있는 <name>jacojang</name><name>jacobs</name>을 모두 지칭합니다.