티스토리 뷰
본 포스팅은 TmaxSoft TP Monitor 제품인 Tmax5의 Configuration 가이드입니다.
1. Tmax Config File의 활용
$TMAXDIR/config/sample.m
Tmax 시스템의 동작의 근거가 되는 파일입니다. 필수 정의 절 간에는 서로 트리 (Tree)형태의 포함 관계가 성립됩니다.
절의 이름은 별표로 시작하며, 대문자로 구성됩니다. 절의 정의 순서는 고정되어 있지 않습니다.
동일한 절이라도 내용별로 나누어 한번 이상 정의 가능하지만 동일한 내용을 반복하여 정의 하는것은 불가능합니다.
각 절의 항목들은 <항목명 = 값> 의 형태로 정의합니다. 항목 값은 numeric, string, literal, Y/N 형태 중 하나로 지정합니다.
numeric : SHMKEY = 77990
string : DBNAME = ORACLE
literal : APPDIR = "/home/tmax/appbin"
Y/N : CMTRET = Y
2. Tmax Config File 작성시 주의사항
절의 시작은 별표 (*)로 시작되어야 하고 반드시 대문자를 사용한다.
절 이름 또는 절의 하위 개체 이름은 반드시 첫째 칸에서 시작되어야 한다.
절 이름 또는 절의 하위 개체 이름 이외의 항목은 첫째 칸에서 시작할 수 없다.
절의 각 항목 간에는 콤마 (,)로 구분되어야 한다.
콤마(,)가 없는 경우 해당 절의 정의가 끝난 것으로 간주한다.
항목과 항목 사이의 공백은 의미가 없으므로 얼마를 두더라도 관계없다.
Tmax 시스템에서 설정한 default 값이 있는 항목에 대해 별도로 값을 설정하지 않는 경우엔 default 값으로 자동 설정한다.
3. Tmax Config File의 예
*DOMAIN
TmaxSoft SHMKEY = 77990, MAXUSER=400, TPORTNO = 8899,
BLOCKTIME = 60, TXTIME = 30
*NODE
Tmax1 TMAXDIR = “/home/tmax”,
APPDIR= “/home/tmax/appbin”
Tmax2 TMAXDIR=“/system/tmax”,
APPDIR=“/system/tmax/appbin”
*SVRGROUP
public NODENAME = Tmax1
jeus NODENAME = Tmax2
*SERVER
svr1 SVGNAME = public, MIN=5 , MAX=10
svr2 SVGNAME = jeus
*SERVICE
SVC1 SVRNAME = svr1
SVC2 SVRNAME = svc2
- Tmax Config File - DOMAIN절 소개
하나의 독립적인 Tmax 시스템 전체에 대한 환경을 설정한다. 하나의 Tmax 시스템을 구성하는 모든 노드에 공통적으로 적용한다.
*DOMAIN
domain1 SHMKEY = 79900, CMTRET = Y,
MAXSVR = 64, MAXSPR = 64,
MAXCPC = 32, MAXUSER = 300,
TPORTNO = 8888, RACPORT = 3334,
MINCLH = 1, MAXCLH = 2,
CLICHKINT = 5, IDLETIME = 30,
TXTIME = 30, NLIVEINQ = 30,
BLOCKTIME = 60
- Tmax Config File - NODE절 소개
Tmax 시스템을 이루는 각 노드들에 대한 구체적인 환경을 설정한다.
*NODE
edu01 TMAXDIR = "/home/tmax",
APPDIR = "/home/tmax/appbin",
SLOGDIR = "/home/tmax/log/slog",
ULOGDIR = "/home/tmax/log/ulog",
TLOGDIR = "/home/tmax/log/tlog",
PATHDIR = "/home/tmax/path",
ENVFILE = "/home/tmax/config/env“
CLHQTIMEOUT = 60
- Tmax Config File - SERVER절 소개
서버 프로세스들의 그룹에 대한 환경을 설정한다.
*SVRGROUP
svg1 NODENAME = "edu01",
COUSIN = "svg1_1", LOAD = 3
svg2 NODENAME = "edu01", DBNAME = ORACLE,
OPENINFO = "Oracle_XA+Acc=P/scott/tiger+Sqlnet=ORA10G+SesTm=60+DbgFl=0x01+LogDir=/home/tmax/log/xalog",
TMSNAME = tms_ora, BACKUP = "svg2_bak",
MINTMS = 1, MAXTMS = 3
svg1_1 NODENAME = "edu02", LOAD = 2
svg2_bak NODENAME = "edu02", SVGTYPE = TMAX
- Tmax Config File - SERVICE절 소개
Tmax 시스템에서 서버를 통해 제공하는 서비스들의 등록 환경 설정한다.
*SERVICE
FDLTOUPPER SVRNAME = svr3,
TOUPPER SVRNAME = svr2, SVCTIME = 60, ROUTING = rout1
FDLINS SVRNAME = fdltest, AUTOTRAN = Y
# 참고
Timeout에 따른 Information
- Tmax Config File - GATEWAY절 소개
Multi Domain 설정 시 Domain간의 원활한 서비스를 처리하기 위한 Domain GATEWAY process를 설정한다.
*GATEWAY
gw1 NODENAME = "edu01", PORTNO = 5000,
RGWADDR = eduxsvr, RGWPORTNO = 5001,
GWTYPE = TMAX, CPC = 2
- Tmax Config File - ROUTING절 소개
Node간 또는 Domain간의 데이터에 따른 부하분산을 위한 설정이다.
SERVICE절에 정의된 ROUTING 항목에 대한 부하 분산의 내용을 지정하는 절이다.
*ROUTING
ROUTE_1 FIELD = "FIELD/empno",
RANGES = "MIN-7788:svg2, 7789-MAX:gw1"
ROUTE_2 FIELD = "STRUCT/student/number",
RANGES = "MIN - 3 : SVG1, 4 : SVG2, 6 - MAX : SVG3"
ROUTE_3 FIELD = "STRING/0/4, CARRAY, FIELD/INPUT",
RANGES = "MIN-‘1000’ : svg1, ‘1001’-‘2000’: svg2, *:svg3"
다음으로 Tmax의 다양한 명령어에 대해 알아보겠습니다.
1. cfl
컴파일을 통해서 Tmax 시스템이 정상적으로 동작할 수 있는 올바른 실행파일을 생성한다.
Usage: cfl [-hno] -i file_name
[tmax@NRSON ~]$ cfl -i sample.m
CFL is done successfully for node(NRSON)
[tmax@NRSON config]$ ls -la
합계 596
drwxrwxr-x 2 tmax tmax 63 4월 11 10:29 .
drwxrwxr-x 22 tmax tmax 280 4월 11 10:26 ..
-rwxrwxr-x 1 tmax tmax 328 4월 11 10:26 RM
-rwxrwxr-x 1 tmax tmax 4977 4월 11 10:26 sample.m
-rwxrwxr-x 1 tmax tmax 436 4월 11 10:26 tdl.cfg
-rw-rw-r-- 1 tmax tmax 592224 4월 11 10:29 tmconfig
[tmax@NRSON config]$
2. gst
Service table이란, 서버마다 제공되는 서비스 이름들이 나열되어 있는 파일이다.
서버프로세스 내에서 제공하는 서비스의 종류를 파악하기 위해 서비스테이블을 서버 프로그램과 함께 제공한다.
Tmax 홈 디렉토리 밑의 svct 하위디렉토리에 서버명_svctab.c로 생성된다.
Usage: gst [-hf]
[tmax@NRSON config]$ gst
SVC tables are successfully generated
GST is successfully done
[tmax@NRSON config]$ ls -la ../svct
합계 4
drwxrwxr-x 2 tmax tmax 27 4월 11 10:32 .
drwxrwxr-x 22 tmax tmax 280 4월 11 10:26 ..
-rw-rw-r-- 1 tmax tmax 709 4월 11 10:32 svr2_svctab.c
[tmax@NRSON config]$
3. compile
tmax에서 제공하는 sample을 compile 하는 용도로 사용된다.
컴파일이 완료 되면 $TMAXDIR/appbin으로 svr2 컴파일 소스가 자동으로 copy된다.
Usage: compile [Compile Type] sourceFile
[tmax@NRSON server]$ ./compile c svr2
cc -O -I/home/tmax/tmax -c svr2.c
cp -f /home/tmax/tmax/svct/svr2_svctab.c .
touch ./svr2_svctab.c
cc -O -I/home/tmax/tmax -c ./svr2_svctab.c
cc -O -I/home/tmax/tmax -L/home/tmax/tmax/lib64 -o svr2 svr2.o svr2_svctab.o -lsvr -lnodb /home/tmax/tmax/lib64/sdl.o
mv svr2 /home/tmax/tmax/appbin/.
rm -f svr2.o svr2_svctab.o
[tmax@NRSON server]$ ls -la ../../appbin/
합계 4008
drwxrwxr-x 2 tmax tmax 278 4월 11 10:47 .
drwxrwxr-x 22 tmax tmax 280 4월 11 10:26 ..
-rwxrwxr-x 1 tmax tmax 104373 4월 11 10:26 clihdrshm
-rwxrwxr-x 1 tmax tmax 108592 4월 11 10:26 clihdrshmd
-rwxrwxr-x 1 tmax tmax 345789 4월 11 10:26 clihdrshmg
-rwxrwxr-x 1 tmax tmax 351344 4월 11 10:26 clihdrshmgd
-rwxrwxr-x 1 tmax tmax 147127 4월 11 10:26 rcal
-rwxrwxr-x 1 tmax tmax 149911 4월 11 10:26 rcald
-rwxrwxr-x 1 tmax tmax 420527 4월 11 10:26 rcalg
-rwxrwxr-x 1 tmax tmax 424343 4월 11 10:26 rcalgd
-rwxrwxr-x 1 tmax tmax 119814 4월 11 10:26 serialgw
-rwxrwxr-x 1 tmax tmax 125798 4월 11 10:26 serialgwd
-rwxrwxr-x 1 tmax tmax 373854 4월 11 10:26 serialgwg
-rwxrwxr-x 1 tmax tmax 380734 4월 11 10:26 serialgwgd
-rwxrwxr-x 1 tmax tmax 9504 4월 11 10:47 svr2
-rwxrwxr-x 1 tmax tmax 115429 4월 11 10:26 tcpgwlsn
-rwxrwxr-x 1 tmax tmax 121509 4월 11 10:26 tcpgwlsnd
-rwxrwxr-x 1 tmax tmax 381757 4월 11 10:26 tcpgwlsng
-rwxrwxr-x 1 tmax tmax 389661 4월 11 10:26 tcpgwlsngd
[tmax@NRSON server]$
4. tmboot
tmax process를 이진 Tmax 환경파일을 근거로 기동한다.
binary로 이루어진 Tmax 환경파일을 참조하여 Tmax 시스템을 기동하는 명령어 Tmax binary 환경파일 참조 위치 : $TMAXDIR/config
Usage: tmboot [-hbfknow] [-c|g|q|S|s|T|t|A]
[tmax@NRSON config]$ tmboot
TMBOOT for node(NRSON) is starting:
Welcome to Tmax demo system: it will expire 2018/6/9
Today: 2018/4/11
TMBOOT: TMM is starting: Wed Apr 11 10:52:02 2018
TMBOOT: CLL is starting: Wed Apr 11 10:52:02 2018
TMBOOT: CLH is starting: Wed Apr 11 10:52:02 2018
(I) CLH9991 Current Tmax Configuration: Number of client handler(MINCLH) = 1
Supported maximum user per node = 3644
Supported maximum user per handler = 3645 [CLH0141]
TMBOOT: TLM(tlm) is starting: Wed Apr 11 10:52:02 2018
TMBOOT: SVR(svr2) is starting: Wed Apr 11 10:52:02 2018
[tmax@NRSON config]$
앞서 컴파일 한 svr2 Service도 함께 기동 되는것을 확인할 수 있습니다.
tmboot 시 사용할 수 있는 다양한 명령어들이 있다.
- tmboot -T
Tmax 시스템 엔진만 기동하는 방법입니다.
[tmax@NRSON config]$ tmboot -T
TMBOOT for node(NRSON) is starting:
Welcome to Tmax demo system: it will expire 2018/6/9
Today: 2018/4/11
TMBOOT: TMM is starting: Wed Apr 11 12:05:51 2018
TMBOOT: CLL is starting: Wed Apr 11 12:05:51 2018
TMBOOT: CLH is starting: Wed Apr 11 12:05:51 2018
(I) CLH9991 Current Tmax Configuration: Number of client handler(MINCLH) = 1
Supported maximum user per node = 3644
Supported maximum user per handler = 3645 [CLH0141]
TMBOOT: TLM(tlm) is starting: Wed Apr 11 12:05:51 2018
[tmax@NRSON config]$
- tmboot -S [serverName]
Tmax 시스템 엔진이 기동되어 있는 상태에서 Server를 기동합니다.
[tmax@NRSON config]$ tmboot -T
TMBOOT for node(NRSON) is starting:
Welcome to Tmax demo system: it will expire 2018/6/9
Today: 2018/4/11
TMBOOT: TMM is starting: Wed Apr 11 12:08:56 2018
TMBOOT: CLL is starting: Wed Apr 11 12:08:56 2018
TMBOOT: CLH is starting: Wed Apr 11 12:08:56 2018
(I) CLH9991 Current Tmax Configuration: Number of client handler(MINCLH) = 1
Supported maximum user per node = 3644
Supported maximum user per handler = 3645 [CLH0141]
TMBOOT: TLM(tlm) is starting: Wed Apr 11 12:08:56 2018
[tmax@NRSON config]$ tmboot -S svr2
TMBOOT for node(NRSON) is starting:
Welcome to Tmax demo system: it will expire 2018/6/9
Today: 2018/4/11
TMBOOT: SVR(svr2) is starting: Wed Apr 11 12:09:00 2018
[tmax@NRSON config]$
- tmboot -s [serverName] -k [threadCount]
Tmax 시스템 엔진이 기동되어 있는 상태에서 Server를 기동합니다.
기동 시 초기에 셋팅할 threadCount를 지정할 수 있으며, 이는 환경 파일 sample.m의 Max 값을 넘을 수 없습니다.
[sample.m]
*SERVER
...
svr2 SVGNAME = svg1, MIN = 1, MAX = 5
...
- Max보다 높데 지정하여 기동 할 경우
[tmax@NRSON config]$ tmboot -s svr2 -k 10
TMBOOT for node(NRSON) is starting:
Welcome to Tmax demo system: it will expire 2018/6/9
Today: 2018/4/11
(E) BOOT3007 maxsvr (5) is over for svr(svr2:svr2): nodeno = 0, svri = 4, cur = 0, ksvr = 10 [BOOT0015]
[tmax@NRSON config]$
- Max보다 낮게 지정하여 기동 할 경우
[tmax@NRSON config]$ tmboot -T
TMBOOT for node(NRSON) is starting:
Welcome to Tmax demo system: it will expire 2018/6/9
Today: 2018/4/11
TMBOOT: TMM is starting: Wed Apr 11 12:19:48 2018
TMBOOT: CLL is starting: Wed Apr 11 12:19:48 2018
TMBOOT: CLH is starting: Wed Apr 11 12:19:48 2018
(I) CLH9991 Current Tmax Configuration: Number of client handler(MINCLH) = 1
Supported maximum user per node = 3644
Supported maximum user per handler = 3645 [CLH0141]
TMBOOT: TLM(tlm) is starting: Wed Apr 11 12:19:48 2018
[tmax@NRSON config]$ tmboot -s svr2 -k 3
TMBOOT for node(NRSON) is starting:
Welcome to Tmax demo system: it will expire 2018/6/9
Today: 2018/4/11
TMBOOT: SVR(svr2) is starting: Wed Apr 11 12:19:55 2018
TMBOOT: SVR(svr2) is starting: Wed Apr 11 12:19:55 2018
TMBOOT: SVR(svr2) is starting: Wed Apr 11 12:19:55 2018
[tmax@NRSON config]$
5. tmdown
이진 Tmax 환경파일을 근거로 종료한다.
Usage: tmdown [-ahfiknw] [-A|g|q|S|s|t|p]
[tmax@NRSON config]$ tmdown
Do you really want to down whole Tmax? (y : n): y
TMDOWN for node(NRSON) is starting:
TMDOWN: SERVER(svr2:36) downed: Wed Apr 11 12:22:13 2018
TMDOWN: SERVER(svr2:37) downed: Wed Apr 11 12:22:13 2018
TMDOWN: SERVER(svr2:38) downed: Wed Apr 11 12:22:13 2018
TMDOWN: CLL downed: Wed Apr 11 12:22:13 2018
TMDOWN: CLH downed: Wed Apr 11 12:22:13 2018
TMDOWN: TLM downed: Wed Apr 11 12:22:13 2018
TMDOWN: TMM downed: Wed Apr 11 12:22:13 2018
TMDOWN: TMAX is down
[tmax@NRSON config]$
tmdown도 사용할 수 있는 다양한 명령어들이 있다.
- tmdown -S svr2
해당 서버만 다운한다.
[tmax@NRSON config]$ tmdown -S svr2
TMDOWN for node(NRSON) is starting:
TMDOWN: SERVER(svr2:36) downed: Wed Apr 11 12:23:51 2018
[tmax@NRSON config]$
- tmdown -s [serverName] -k [threadCount]
해당 서버의 해당 갯수 만큼의 thread만 종료한다.
아래와 같이 5개를 기동한 후 3개의 thread만 종료하는 부분을 볼 수 있다.
[tmax@NRSON config]$ tmboot -s svr2 -k 5
TMBOOT for node(NRSON) is starting:
Welcome to Tmax demo system: it will expire 2018/6/9
Today: 2018/4/11
TMBOOT: SVR(svr2) is starting: Wed Apr 11 12:26:16 2018
TMBOOT: SVR(svr2) is starting: Wed Apr 11 12:26:16 2018
TMBOOT: SVR(svr2) is starting: Wed Apr 11 12:26:16 2018
TMBOOT: SVR(svr2) is starting: Wed Apr 11 12:26:16 2018
TMBOOT: SVR(svr2) is starting: Wed Apr 11 12:26:16 2018
[tmax@NRSON config]$ tmdown -s svr2 -k 3
TMDOWN for node(NRSON) is starting:
TMDOWN: SERVER(svr2:39) downed: Wed Apr 11 12:26:22 2018
TMDOWN: SERVER(svr2:40) downed: Wed Apr 11 12:26:22 2018
TMDOWN: SERVER(svr2:38) downed: Wed Apr 11 12:26:22 2018
[tmax@NRSON config]$
- tmdown -p <spr_no>
기동되어 있는 프로세스 중 특정 프로세스를 지정하여 내릴 수 있다.
tmadmin은 tmax admin CLI Console 입니다.
[tmax@NRSON ~]$ tmadmin
--- Welcome to Tmax Admin (Type "quit" to leave) ---
$$1 NRSON (tmadm): st -p
CLH 0:
---------------------------------------------------------------------------
svr_name svgname spr_no status count avg svc
---------------------------------------------------------------------------
svr2 svg1 36 RDY 0 0.000 -1
svr2 svg1 37 RDY 0 0.000 -1
svr2 svg1 38 RDY 0 0.000 -1
svr2 svg1 39 RDY 0 0.000 -1
svr2 svg1 40 RDY 0 0.000 -1
---------------------------------------------------------------------------
TOTAL COUNT = 0
TOTAL RUNNING COUNT = 0
$$2 NRSON (tmadm): q
ADM quit for node (NRSON)
[tmax@NRSON ~]$ tmdown -p 37
TMDOWN for node(NRSON) is starting:
TMDOWN: SERVER(svr2:37) downed: Wed Apr 11 12:40:41 2018
[tmax@NRSON ~]$ tmadmin
--- Welcome to Tmax Admin (Type "quit" to leave) ---
$$1 NRSON (tmadm): st -p
CLH 0:
---------------------------------------------------------------------------
svr_name svgname spr_no status count avg svc
---------------------------------------------------------------------------
svr2 svg1 36 RDY 0 0.000 -1
[remove 됨]
svr2 svg1 38 RDY 0 0.000 -1
svr2 svg1 39 RDY 0 0.000 -1
svr2 svg1 40 RDY 0 0.000 -1
---------------------------------------------------------------------------
TOTAL COUNT = 0
TOTAL RUNNING COUNT = 0
$$3 NRSON (tmadm):
- tmdown -i
기동 되어 있는 tmax 시스템을 강제 종료한다.
[tmax@NRSON ~]$ tmdown -i
TMDOWN for node(NRSON) is starting:
TMDOWN: SERVER(svr2:36) downed: Wed Apr 11 12:46:46 2018
TMDOWN: SERVER(svr2:38) downed: Wed Apr 11 12:46:46 2018
TMDOWN: SERVER(svr2:39) downed: Wed Apr 11 12:46:46 2018
TMDOWN: SERVER(svr2:40) downed: Wed Apr 11 12:46:46 2018
TMDOWN: CLL downed: Wed Apr 11 12:46:46 2018
TMDOWN: CLH downed: Wed Apr 11 12:46:46 2018
TMDOWN: TLM downed: Wed Apr 11 12:46:46 2018
TMDOWN: TMM downed: Wed Apr 11 12:46:46 2018
TMDOWN: TMAX is down
[tmax@NRSON ~]$
6. tmadmin
Tmax 시스템 관리를 위한 프로그램이다.
tmadmin 프로그램의 운용 용도는 정보 출력과 동작 관리로 나누어 볼 수 있다.
정보를 확인할 수 있는 명령들은 "tmadmin(tmadmin –s)"을 실행하여 모니터링할 수 있지만, 동작 관리에 관한 명령들은 "tmadmin –m"을 실행하여 마스터 모드에서만 가능하다.
tmadmin 모드에서 실행할 수 있는 명령 - ti, ci, si, txq, history(hist), !, config(cfg), stat(st), repeat(r), rqs(-l, -s), logstart(logs), logend(loge)
tmadmin -m 모드에서 실행할 수 있는 명령 - suspend(sp), resume(rs), rbs, cfgadd(ca), set, rqs(-c, -f), qp, restat
- tmadmin의 용도
1. 정보 출력 : ti, ci, si, txq, rqs, history, !, config, stat, repeat
2. 동작 관리 : suspend, resume, rbs (reboot server),
cfgadd (configuration add), set, qp (queue purge), logstart, logend, restat
*st, si 명령어는 Wild card(* 문자)를 사용할 수 있다.
- ti (Tmax Info)
Tmax의 시스템 환경정보를 출력한다.
$$1 NRSON (tmadm): ti
Tmax System Info: DEMO version 5.0 SP #2 Fix #2:
expiration date = 2018/6/9
maxuser = UNLIMITED,
Supported maximum user per node = 3644,
Supported maximum user per handler = 3645,
domaincount = 1,
nodecount = 1,
svgrpcount = 1,
svrcount = 1, svccount = 2
rout_groupcount = 0, rout_elemcount = 0
cousin_groupcount = 0, cousin_elemcount = 0
backup_groupcount = 0, backup_elemcount = 0
Tmax All Node Info: nodecount = 1:
------------------------------------------------------------------
no name portno racport shmkey shmsize minclh maxclh
------------------------------------------------------------------
0 NRSON 8888 3333 79990 552652 1 3
$$2 NRSON (tmadm):
위와 같이 Tmax Version 정보, 라이센스 정보등 각종 정보를 출력해 주고 있다.
- ci (Client info)
$$1 NRSON (tmadm): ci
CLH 0:
--------------------------------------------------------
cli_id status count lastin_time ipaddr usrname
--------------------------------------------------------
1 RDY 1 11 172.28.71.22
2 RDY 1 5 192.168.2.112
--------------------------------------------------------
Total Connected Clients = 2
--------------------------------------------------------
$$1 NRSON (tmadm):ci -s
CLH 0: 2
Total Connected Clients = 2
- cfg (config)
현재 동작 중인 시스템의 환경정보를 알려 준다. 즉, config file에서 정의된 도메인, 노드, 서버그룹, 서버, 서비스별로 디폴트 값까지 포함한 모든 환경 정보를 확인할 수 있다.
-d, -n, -g, -v, -s 옵션만을 사용하면 기동된 이진 환경파일에 등록이 되어있는 모든 도메인, 노드, 서버그룹, 서버, 서비스에 대한 정보를 볼 수 있으며, 옵션뒤에 도메인명, 노드명, 서버그룹명, 서버명, 서비스명을 주면 해당되는 정보만을 보여준다.
$$6 NRSON (tmadm): cfg
Usage: config {-d | -n | -g | -v | -s [-x]| -f | -pr | -r | -b | -w | -q | -cs}
$$7 NRSON (tmadm):
- stat (status)
서버프로세스, 서비스, tms, 서버에 대한 정보를 출력
wild card (*) 사용 가능
-s, -p 옵션에 대해서는 more 기능 제공 (즉, tmadmin -p)
Usage: stat {-p | -s | -t | -v | -o | -n}
-p : 서버프로세스 정보 확인
-s : 서비스 정보 확인
-t : tms 정보 확인
-v : 서버 정보 확인
-o : sort 조건
-n : sort로 출력할 메시지 라인 수
각종 옵션 테스트를 수행해 보겠습니다.
1) st –p
현재 기동 되어있는 개별 서버프로세스 정보 확인한다.
$$1 NRSON (tmadm): st -p
CLH 0:
-----------------------------------------------------------
svr_name svgname spr_no status count avg svc
-----------------------------------------------------------
fdltest svg2 47 RDY 1 0.003 -1
sdltest svg2 48 RDY 1 0.004 -1
-----------------------------------------------------------
TOTAL COUNT = 2
TOTAL AVG = 0.004
TOTAL RUNNING COUNT = 0
2) st –s
환경파일에 등록되어있는 모든 서비스 정보 확인한다.
$$11 NRSON (tmadm): st -s
CLH 0:
---------------------------------------------------------------
svc_name svr_name count avg cq_count aq_count q_avg status
---------------------------------------------------------------
TOLOWER svr2 0 0.000 0 0 0.000 NRDY
FDLSEL fdltest 1 0.003 0 0 0.000 RDY
FDLINS fdltest 0 0.000 0 0 0.000 RDY
$$12 NRSON (tmadm): st -s F*
CLH 0:
---------------------------------------------------------------
svc_name svr_name count avg cq_count aq_count q_avg status
---------------------------------------------------------------
FDLSEL fdltest 1 0.003 0 0 0.000 RDY
FDLINS fdltest 0 0.000 0 0 0.000 RDY
3) st –v
환경파일에 등록되어있는 서버 정보 확인한다.
$$13 NRSON (tmadm): st -v
------------------------------------------------------------
clh svrname (svri) status count qcount qpcount emcount
------------------------------------------------------------
0 svr2 ( 9) NRDY 0 0 0 0
0 fdltest ( 11) RDY 1 0 0 0
0 sdltest ( 12) RDY 1 0 0 0
$$14 NRSON (tmadm): st -v f*
------------------------------------------------------------
clh svrname (svri) status count qcount qpcount emcount
------------------------------------------------------------
0 fdltest ( 11) RDY 1 0 0 0
4) st –t
TMS 정보 확인한다.
$$1 NRSON (tmadm): st -t
CLH 0:
-----------------------------------------------------------
tms_name svgname spr_no status count avg
-----------------------------------------------------------
svg2_tms svg2 0 RDY 3 0.00
svg2_tms svg2 1 RDY 0 0.00
svg4_tms svg4 3 RDY 0 0.00
svg4_tms svg4 4 RDY 0 0.00
$$2 NRSON (tmadm): st -t svg2*
CLH 0:
-----------------------------------------------------------
tms_name svgname spr_no status count avg
-----------------------------------------------------------
svg2_tms svg2 0 RDY 3 0.00
svg2_tms svg2 1 RDY 0 0.00
- repeat
지정 명령어를 반복적으로 출력한다.
r -i [Interval_Time] -k [Repeat_Count] [Command]
$$2 NRSON (tmadm): r -i 1 -k 5 st -p
CLH 0:
---------------------------------------------------------------------------
svr_name svgname spr_no status count avg svc
---------------------------------------------------------------------------
svr2 svg1 36 RDY 0 0.000 -1
---------------------------------------------------------------------------
TOTAL COUNT = 0
TOTAL RUNNING COUNT = 0
$$3 NRSON (tmadm): st -p
CLH 0:
---------------------------------------------------------------------------
svr_name svgname spr_no status count avg svc
---------------------------------------------------------------------------
svr2 svg1 36 RDY 0 0.000 -1
---------------------------------------------------------------------------
TOTAL COUNT = 0
TOTAL RUNNING COUNT = 0
$$4 NRSON (tmadm): st -p
CLH 0:
---------------------------------------------------------------------------
svr_name svgname spr_no status count avg svc
---------------------------------------------------------------------------
svr2 svg1 36 RDY 0 0.000 -1
---------------------------------------------------------------------------
TOTAL COUNT = 0
TOTAL RUNNING COUNT = 0
즉 위 명령어는 1초에 한번씩 5번 반복적으로 st -p 명령어를 수행하라의 의미이다.
- logstart/logend (logs/loge)
관리자는 tmadmin을 사용하여 여러 가지 실시간 정보를 살펴볼 수 있다. 따라서 주어진 상황에 맞는 즉각적이고 효과적인 조치를 취할 수 있다.
또한 tmadmin에서는 통계적 정보 분석을 위해 관리자 데이터를 로그로 남길 수 있다. Logging 파일은 현재 디렉토리에 만들어진다.
로그 데이터를 통해 업무 폭주 시간, 불필요한 서버프로세스, 큐잉 상태 등을 확인하여 전반적인 시스템 분석이 가능하다.
[tmax@NRSON log]$ tmadmin
--- Welcome to Tmax Admin (Type "quit" to leave) ---
$$1 NRSON (tmadm): logs b
logging start ok
$$2 NRSON (tmadm): st -s
CLH 0:
------------------------------------------------------------------------------------------------
svc_name svr_name count q_cnt aq_cnt q_avg avg status
------------------------------------------------------------------------------------------------
TOLOWER svr2 0 0 0 0.000 0.000 RDY
TOUPPER svr2 0 0 0 0.000 0.000 RDY
$$3 NRSON (tmadm): loge
logging end ok
$$4 NRSON (tmadm): q
ADM quit for node (NRSON)
[tmax@NRSON log]$ ls
slog tlog ulog
[tmax@NRSON log]$
- suspend (sp)
응용 서버프로그램 오류 등으로 더 이상의 업무 처리가 불가능하여 이를 해결하기 위해 동작중인 서버 프로세스쪽으로의 스케줄링을 중지시킬 때 사용하는 기능이다.
명령어가 실행되면, 현재 처리중인 요청을 정상 완료한 후 더 이상의 동작은 하지 않고, 요청되는 서비스들은 모두 CLH의 서비스 큐에 적체시킨다.
동작중인 서비스를 중지시키면 이후의 요청은 TPENOREADY 에러가 발생하여 서비스를 수행할 수 없다.
[tmax@NRSON tlog]$ tmadmin -m
--- Welcome to Tmax Admin (Type "quit" to leave) ---
$$1 NRSON (tmadm): sp -v svr2
svr(svr2) is suspended
$$2 NRSON (tmadm): si
------------------------------------------------------------------------
clh svrname (svri) status count qcount qpcount emcount
------------------------------------------------------------------------
0 svr2 ( 4) BLK 0 0 0 0
$$3 NRSON (tmadm):
#참고
tmadmin의 st -v 명령을 통해 서버가 BLOCK상태임을 확인할 수 있다.
sp 옵션 설명
-s svc_name : 서비스의 스케줄링을 막는다
-v svr_name : 서버 프로세스의 스케줄링을 막는다
- resume (rs)
스케줄링 중지 상태를 해제한다.
활동이 재개된 서버 프로세스는 큐에 대기중이던 서비스를 처리하기 시작하며 요청되는 서비스에 대해 처리 가능 상태가 된다.
$$1 NRSON (tmadm): sp -v svr2
svr(svr2) is suspended
$$2 NRSON (tmadm): si
------------------------------------------------------------------------
clh svrname (svri) status count qcount qpcount emcount
------------------------------------------------------------------------
0 svr2 ( 4) BLK 0 0 0 0
$$3 NRSON (tmadm): rs -v svr2
svr(svr2) is resumed
$$4 NRSON (tmadm): si
------------------------------------------------------------------------
clh svrname (svri) status count qcount qpcount emcount
------------------------------------------------------------------------
0 svr2 ( 4) RDY 0 0 0 0
$$5 NRSON (tmadm):
- restat
프로세스 통계 정보 내용을 리셋한다.
$$1 NRSON (tmadm): restat -v svr1
Statistics cleared: 3
$$2 NRSON (tmadm): st -p
--------------------------------------------------------
svr_name svgname spr_no status count avg svc
--------------------------------------------------------
svr1 svg1 38 RDY 0 0.00 -1
svr2 svg1 39 RDY 0 0.00 -1
- set
현재 설정되어 있는 환경파일의 설정 값을 동적으로 변경할 수 있는 명령어이다.
변경 가능항목은 tmadmin에서 cfg 명령어를 통해서 확인할 수 있다. 각 항목 중에서 괄호"()"로서 약어를 표시한 항목이 동적으로 변경 가능한 항목이다.
Usage: set -opt sectname fldname value
$$2 NRSON (tmadm): cfg –v svr2
svr_name = svr2, svr_no = 1 ,
……
maxqcount(mq) = -1,
asqcount(aq) = -1,
……
$$3 NRSON (tmadm): set -v svr2 aq 10
new value (10) is set for section = SERVER, name = svr2, fld = aq
$$4 NRSON (tmadm): cfg -v svr2
svr_name = svrfw2, svr_no = 1
……
maxqcount(mq) = -1,
asqcount(aq) = 10,
……
#참고
동적으로 변경할 수 있는 항목 정보이다.
DOMAIN절에서 변경할 수 있는 값 : blocktime(bt), txtime(tt), nliveinq(ni)
NODE절에서 변경할 수 있는 값 : clhqtimeout(hqt)
SVRGROUP절에서 변경할 수 있는 값 : load(ld)
SERVER절에서 변경할 수 있는 값 : maxqcount(mq), asqcount(aq), restart(rs), maxrstart(mr), gperiod(gp)
SERVICE절에서 변경할 수 있는 값 : svctime(st)
- Queue Purge (qp)
마지막으로 queue에 적재된 Request를 제거하는 명령어이다.
업무의 폭주 현상이 발생하여 많은 업무가 적체되어 정상적으로 거래를 처리하지 못하는 경우, 현재 큐에 적체되어 있는 서비스 요청을 삭제하는 기능이다.
삭제된 업무는 클라이언트의 재요청을 통하여 다시 처리될 수 있다.
Tmax에서는 서버 프로세스(서비스)별로 큐를 관리함으로써 관리자는 특정 서버별로 큐를 삭제할 수 있어 타 업무의 효과적인 수행에도 도움을 준다.
qp를 통해 삭제된 서비스는 클라이언트에게 TPEQPURGE(tperrno = 27)를 반환하게 된다. 따라서 클라이언트는 이에 맞게 적절한 대처를 할 수 있다.
$$7 NRSON (tmadm): si
--------------------------------------------------------
clh svrname (svri) status count qcount qpcount emcount
--------------------------------------------------------
0 svr2 ( 4) RDY 3 2 2 0
$$8 NRSON (tmadm): qp -v svr2
(I) CLH2094 svr_q (svr2) is purged [CLH0221]
(I) CLH2094 svr_q (svr2) is purged [CLH0221]
Queue for svr svr2 is purged: purged_count = 4
$$9 NRSON (tmadm): si
--------------------------------------------------------
clh svrname (svri) status count qcount qpcount emcount
--------------------------------------------------------
0 svr2 ( 4) RDY 3 0 4 0
지금까지 Tmax에서 Configuration 과정 및 다양한 명령어를 살펴 보았습니다.
고맙습니다.
'④ 미들웨어 > ⓣ Tmax' 카테고리의 다른 글
[Tmax] JEUS7 - WebT 연동 가이드 (0) | 2018.07.03 |
---|---|
[Web Server] Tmax CLHQTIMEOUT & tmm 다운 영향도 가이드 (0) | 2018.06.18 |
[Web Server] Tmax 서버/서비스 동적추가 가이드 (0) | 2018.06.18 |
[Web Server] Tmax5 장애진단 가이드 (0) | 2018.06.18 |
[Tmax] Install 가이드 (0) | 2018.04.10 |
- Total
- Today
- Yesterday
- 마이크로서비스 아키텍처
- Da
- openstack tenant
- API Gateway
- git
- 마이크로서비스
- JBoss
- Architecture
- wildfly
- SA
- nodejs
- node.js
- jeus
- JEUS6
- SWA
- 쿠버네티스
- aa
- MSA
- webtob
- 아키텍처
- 오픈스택
- apache
- Docker
- TA
- openstack token issue
- aws
- JEUS7
- k8s
- kubernetes
- OpenStack
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |