사용 및 관리
본 장에서는 SQ 시스템을 사용하기 위해서 Tmax 환경 파일에 SQ를 설정하는 과정과 관리 툴을 이용한 SQ 상태 정보 확인 및 관리하는 방법에 대해서 설명한다.
1. 환경설정
실제 애플리케이션 개발에 앞서 SQ 시스템을 시작하기 위해서는 기본적인 설정이 필요하다.
1.1. NODE 절
SQ 시스템은 노드 단위로 관리되며 Tmax 환경 파일의 NODE 절에 설정해야 한다.
SQ 시스템을 사용하기 위해서는 NODE 절에 SQKEY, SQSIZE, SQMAX, SQKEYMAX, SQTIMEOUT 항목을 설정한다. SQ를 사용하려면 SQKEY, SQSIZE, SQMAX는 반드시 설정해야 한다.
Tmax 환경 파일 설정에 대한 자세한 내용은 Tmax Administration Guide의 환경 파일 설정을 참고한다. |
NODE 절의 환경설정 형식은 다음과 같이 정의한다.
* NODE Node Name SQKEY = 32768~262143 , SQSIZE = 4 ~ 4000000, SQMAX= 2~MAX_INT-1, SQKEYMAX= 1 ~ MAX_INT, SQTIMEOUT=1 ~ MAX_INT
-
Node Name = string
-
크기 : 63자 이내
-
노드의 물리적인 이름으로 UNIX의 "uname -n" 명령으로 확인된 이름을 정의한다. 설정한 노드 이름은 반드시 "/etc/hosts" 파일에 등록되어 있어야 한다. 하나의 도메인(DOMAIN)은 하나 이상의 노드로 이루어지므로, NODE 절에는 최소한 하나 이상의 노드 이름이 정의되어야 한다.
-
-
SQKEY = numeric
-
범위 : 32768~262143
-
SQ 저장소로 사용될 공유 메모리 세그먼트(shared memory segment)를 가리키는 키값을 정의한다.
-
-
SQSIZE = numeric
-
범위 : 4 ~ 4000000 (단위: KB)
-
SQ 저장소로 사용될 공유 메모리 세그먼트의 크기를 정의한다.
-
-
SQMAX = numeric
-
범위 : 2~MAX_INT-1 (단위: KB)
-
노드에 생성될 수 있는 최대 SQ 개수로서 짝수로 설정해야 한다. 홀수로 설정할 경우 하나 작아진다.
-
-
SQKEYMAX = numeric
-
기본값 : 1~MAX_INT
-
각 SQ 에서 저장 가능한 최대 키 개수이다.
-
-
SQTIMEOUT = numeric
-
기본값 : 1~MAX_INT (단위: 초)
-
SQ 데이터 보관 타임아웃이다. 타임아웃의 경우 데이터가 자동 삭제된다.
-
사용 예제
*DOMAIN tmax ... *NODE tmax1 ..., SQKEY = 80000, SQSIZE = 8192, SQMAX = 1024, SQKEYMAX = 64, SQTIMEOUT = 30
2. 시스템 관리
Tmax 시스템이 기동되면 Tmax에서 제공하는 관리 툴인 tmadmin을 이용하여 시스템의 상태를 관리할 수 있다.
관리 툴에 대한 자세한 내용은 Tmax Administration Guide를 참고한다. |
2.1. 상태 정보 관리
tmadmin에서 SQ와 관련한 명령으로는 sqinfo(sqi)와 sqpurge(sqp)가 있다.
명령어 | 설명 |
---|---|
현재 사용되고 있는 SQ 및 GQ에 대한 사용량 및 키에 대한 정보를 조회할 수 있다. |
|
관리자가 원하는 키에 대해서 강제 삭제할 수 있는 기능을 제공한다. |
sqinfo(sqi)
SQ 및 GQ에 대한 사용량 및 키에 대한 정보를 조회할 수 있다. 멀티 노드 환경에서는 노드별로 조회된다 (GQ의 경우 세션 ID는 "0xffffffff"이다). 옵션을 주지 않을 경우는 모든 SQ 및 GQ에 대한 사용량 등 큐에 대한 정보를 제공한다.
-
사용 방법
$ sqi [-k session_id]
항목 설명 [-k session_id]
지정한 세션에 저장되어 있는 키 리스트에 대한 상세한 정보를 조회한다.
-
예제
-
다음은 명령어 실행에 대한 예제이다.
$ tmax1 (tmadm): sqi ----------------------------------------------------------------------- session_id type clhno index issuer count size ----------------------------------------------------------------------- 0xffffffff GLOBAL - - - 5 785 0x00000327 SERVER 0 113 svr_ucs 0 0 0x00004000 CLIENT 1 0 192.168.1.123 0 0 0x00004327 SERVER 1 113 svr_ucs 0 0 ----------------------------------------------------------------------- allocated in total = 4096 bytes, actually used = 2208 bytes ----------------------------------------------------------------------- Msg from rnode(tmax2): ----------------------------------------------------------------------- session_id type clhno index issuer count size ----------------------------------------------------------------------- 0xffffffff GLOBAL - - - 0 0 ----------------------------------------------------------------------- allocated in total = 4096 bytes, actually used = 576 bytes -----------------------------------------------------------------------
출력된 각 항목에 대한 설명은 다음과 같다.
항목 설명 session_id
현재 생성되어 있는 세션의 ID이다.
type
세션의 타입을 나타낸다.
-
GLOBAL : GQ
-
CLIENT : 클라이언트에 접속한 경우
-
SERVER : 서버에 접속한 경우
clhno
SQ인 경우 접속한 CLH의 번호이다.
index
SQ인 경우 세션의 인덱스이다.
issuer
SQ인 경우 세션에 대한 정보를 타입에 따라 출력한다.
타입이 'CLIENT’인 경우에는 IP를, 'SERVER’인 경우에는 서버명을 출력한다.
count
생성한 큐의 개수이다.
size
큐 데이터 사이즈이다.
allocated in total
사용을 위해서 할당된 메모리 크기를 의미한다. 이 값은 시스템에서 내부적으로 사용하는 메모리 크기를 포함한다.
actually used
할당된 메모리 중 실제 사용 중인 메모리 크기를 의미한다. 이 값은 시스템에서 내부적으로 사용하는 메모리 크기를 포함한다.
-
-
다음은 [-k] 옵션을 사용한 sqi 명령어 사용 예제이다.
$ tmax1 (tmadm): sqi -k 0x00004000 ----------------------------------------------------------------------- ind key(hexa) key(string) klen dlen stime ----------------------------------------------------------------------- 1 61626331 abcd 4 144 10:50:07
출력된 각 항목에 대한 설명은 다음과 같다.
항목 설명 ind
순서를 나타낸다.
key(hexa)
키를 hexa 값으로 출력한다.
key(string)
사용자가 생성한 키 문자열이다.
klen
키 문자열 길이이다.
dlen
저장한 데이터 길이이다. (단위: Byte)
stime
저장한 시간이다.
-
sqpurge(sqp)
마스터 모드의 tmadmin의 경우 SQ 및 GQ의 원하는 키를 삭제할 수 있다. 단, 로컬 노드에 위치한 키에 대해서만 삭제 가능하다.
-
사용 방법
$ sqp
-
예제
다음은 명령어 실행에 대한 예제이다.
$ tmax1 (tmadm): sqp 0x00000000 ----------------------------------------------------------------------- ind key(hexa) key(string) klen dlen stime ----------------------------------------------------------------------- 1 61626331 abc1 4 144 10:47:47 select?(1 - 1, 0 for all) 1 1 will be purged. key = 61626331(abc1), klen(dlen) = 4(144). ok?(y or n) y purge ok