티스토리 뷰

728x90
반응형

 포스팅은 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 과정 및 다양한 명령어를 살펴 보았습니다.

고맙습니다.

728x90
반응형