hostview.exe
사용법
MS Window 시스템에서 사용할 경우 (MS Window XP/Vista에서 동작함):
/opt/JSparm/parmclient 디렉토리에서 parmclient_v10.4.zip 파일을 PC로
가져와서 압축을 푼다. 그 파일에는 개별 프로그램이 4개 있는데,
hostview.exe 를 실행하면 된다.
이것을 실행하기 위해서는 자바 가상 머신이 해당 PC에 설치되어
있어야 한다. 자바 가상 머신을 설치하려면 다음의 자바
웹사이트에서 다운받아 설치할 수 있다.
http://java.sun.com
Solaris 시스템에서 사용할 경우:
다음과 같이 명령어를 실행하면 된다.
# /opt/JSparm/bin/hostview.sh
hostview의 간단한 기능을 가지고 있는 텍스트 버전인 hostvt도 있다.
설명
hostview 명령어는 자바로 작성된 애플리케이션 프로그램이다.
hostview 명령어를 실행하면 다음과 같은 로그인 화면이 나온다.
여기서 시스템 명과 사용자 명 및 패스워드를 입력하고 "[Connect]" 버튼을 누르면,
해당 시스템에서 실행되고 있는 parmagentx 데몬 프로세스와
TCP(port 9810) connection을 맺고, parmagentx 프로세스로 부터
실시간으로 시스템 통계 정보를 받아서 다음과 같이 그래프로 보여준다.
(hostview 명령어를 실행하기 전에 서버 시스템에 parmagentx
명령어가 미리 실행되어 있어야 한다).
버전 V10.2 부터는 보안성을 강화하기 위해 디폴트 액세스 파일에서 'root' 사용자로 로그인하는 것이 금지되어 있다.
hostview 명령어에 데이타를 제공하는 서버 프로세스 parmagentx 는
여러 클라이언트 프로그램의 접속을 동시에 처리할 수 있다.
parmagentx가 데이타를 수집할 때,
주어진 시간 간격마다 데이타를 한번만 수집하고 그 데이타를 접속된 모든 클라이언트 프로그램에게
공통으로 제공한다.
즉, 여러 클라이언트가 접속해도 데이타 수집은 한번만 하고, 그 데이타를 공통으로 사용한다.
다음은 hostview 명령어의 메인 화면에 대한 설명이다.
상태 정보
그래프 정보
데이타를 10초 간격으로 수집한다고 할 때, 09:00:10 에 수집된 데이타는
09:00:00 에서 09:00:10 동안에 증가된 데이타는 대한 초당 값이거나 분당값이거나
09:00:10 의 현재값 중에 하나이다.
해당 그래프가 초당값(value/second)인지, 분당값(value/minute)인지, 현재값(current value)인지,
평균값인지는 아래의 테이블의 종류 컬럼에 표시된다.
시간 간격이 10초 일 경우, 시간 간격이 1분 보다 적기 때문에 분당값은 차이값이 된다.
분당값으로 표시되는 것은 필드명 앞에 " "가 있다.
그래프에는 라인이 최대 세개까지 있다. 각각의 그래프의 상위 라인은
하위 라인의 값을 포함하고 있다. 예를 들어,
DISK_KB 그래프에는 (r)과 (r+w)의 라인이 있다.
여기서 파란선 r은 디스크로 부터 읽을 데이타 양이고,
빨간선 r+w는 읽고 쓴양의 합계이다.
빨간선과 파란선의 차이값이 디스크에 쓴(write) 양이 된다.
r+w 값이 그래프에 수치로 나타난다.
그래프에 선이 여러 개 있을 경우, 특별히 언급이 없는 것은 그래프 상에 제일 높은 선의 값이
그래프의 수치로 표시된다.
그래프의 X축에 보이는 검은 표시선은 10 dot 간격으로 표시된다.
그래프 | 종류 | 설명 |
 CPU%
|
평균값 %
|
CPU 사용률
CPU 사용량을 백분률로 나타낸다.
-
u user time
-
s system time
[vmstat의 cpu 부분에서 us, sy 컬럼과 같음]
|
 PROCESS
|
현재값
|
현재 실행중인 프로세스의 개수
|
 FORK
|
초당값
|
fork() 시스템 콜의 횟수
[sar -c의 fork/s 컬럼과 같음]
|
 RunT
|
평균값
|
Run Queue에 대기하고 있는 쓰레드의 수
커널은 1초에 한번씩 CPU의 대기큐를 조사하여 CPU를 사용하기 위하여 대기하고 있는 쓰레드가
있으면 그 개수를 누적하고 있다.
시간 간격(interval)동안 증가한 값을 시간 간격으로 나눈 값에 대하여 그래프를 만든다.
[vmstat의 r 컬럼과 같음]
|
 BlockT
|
평균값
|
자원(I/O, paging, ..)이 준비되기를 기다리고 있는 쓰레드의 수
커널은 1초에 한번씩 I/O를 기다리는 프로세스가 있는지 조사하여, I/O가 완료되기를 기다리는 쓰레드가
있으면 그 개수를 누적하고 있다.
시간 간격(interval)동안 증가한 값을 시간 간격으로 나눈 값에 대하여 그래프를 만든다.
[vmstat의 b 컬럼과 같음]
|
 SwapoutT
|
평균값
|
Swapout된 쓰레드의 수
커널은 1초에 한번씩 쓰레드가 swap out된 것이 있는지 조사하여, swap out된 것이 있으면
있으면 그 개수를 누적하고 있다.
시간 간격(interval)동안 증가한 값을 시간 간격으로 나눈 값에 대하여 그래프를 만든다.
[vmstat의 w 컬럼과 같음]
|
 PMEM%
|
현재값 %
|
물리적 메모리의 사용률
|
 VMEM%
|
현재값 %
|
가상 메모리 사용량을 백분률로 보여준다.
그래프 상에 표시되는 숫자는 allocated area + reserverd area 값이 표시된다.
a allocated area
r reserved area
f available(free) area
시스템의 가상 메모리의 총량은 다음과 같이 swap -s 명령어로 알 수 있다.
이 값을 백분률로 그래프에 표시한다.
# swap -s
total: 668080k bytes allocated + 164872k reserved = 832952k used, 1802256k available
|
가상 메모리는 크게 3개의 부분으로 이루어져 있다.
allocated area : 668080 KB
reserved area : 164872 KB
available(free) area : 1802256 KB
위의 3개의 영역을 합한 것이 가상 메모리의 총량이 된다.
가상 메모리의 총량은 사용자 레벨에서 직접 사용되는 것을 보여주는 것이다.
커널이 사용하는 메모리는 가상 메모리 영역에 포함되지 않는다.
커널 메모리 사용량이 증가하면 가상 메모리의 총량은 줄어든다.
가상 메모리의 총량이 줄어든 만큼 그 메모리는 커널에 의해 사용되고 있는 것이다.
|
 FREE
|
평균값
|
사용가능한 물리적 메모리의 크기 (MB 단위)
커널은 1초에 한번씩 시스템의 free memory 양을 누적하고 있다.
시간 간격(interval)동안 증가한 값을 시간 간격으로 나눈 값에 대하여 그래프를 만든다.
[vmstat의 free 컬럼과 같음, (vmstat는 KB 단위)]
|
 SWAP
|
평균값
|
사용 가능한 가상 메모리의 크기 (MB 단위)
커널은 1초에 한번씩 시스템의 가용한 가상 메모리 양을 누적하고 있다.
시간 간격(interval)동안 증가한 값을 시간 간격으로 나눈 값에 대하여 그래프를 만든다.
[vmstat의 swap 컬럼과 같음, (vmstat는 KB 단위)]
|
 PSR
|
초당값
|
클럭 알고리즘에 의해 조사된 페이지 개수(Page Scan Rate)
[vmstat의 sr 컬럼과 같음]
|
 AnonPGIO
|
초당값
|
swap device에 입출력된 페이지 양 (KB 단위)
-
pi page in from swap device
-
po page out to swap device
[vmstat -p의 api, apo 컬럼과 같음]
|
 DISK_OPS
|
초당값
|
전체 디스크에 대한 초당 읽기/쓰기 횟수
-
r reads
-
w writes
[iostat의 r/s, w/s 컬럼과 같음] (Tape device와 NFS 제외)
Solaris의 iostat 명령어에서는 Tape device와 NFS 파일 시스템에 대한 값도 출력한다.
그러나 parmagentx 에서는
Tape device와 NFS 파일 시스템에 대한 데이타는 수집하지 않는다.
또한 초당값을 계산할 때, 소수점이하의 값은 버린다.
|
 DISK_KB
|
초당값
|
전체 디스크에 대한 초당 읽기/쓰기한 데이타 양
-
r kilobytes read
-
w kilobytes write
[iostat의 kr/s, kw/s 컬럼과 같음] (Tape device와 NFS 제외)
|
 DISK_SVCT
|
평균값
|
디스크의 서비스 타임 (milisecond 단위)
I/O가 발생한 디스크에 대하여 평균 서비스 타임을 그래프로 그린다.
-
a average service time active transactions
-
w average service time in wait queue
[iostat -xn의 asvc_t, wsvc_t컬럼과 같음] (Tape device와 NFS 제외)
|
 TmpFS
|
현재값
|
tmpfs(memory based file system) 파일 시스템의 사용량 (MB 단위)
대표적인 tmpfs 파일 시스템은 /tmp 디렉토리이다. 아래의 df 명령어에서
첫번째 컬럼에 swap이라고 보이는 것이 tmpfs 파일 시스템이다.
시스템에 있는 tmpfs 파일 시스템을 모두 합계한 것을 그래프로 그려준다.
# df -k
Filesystem kbytes used avail capacity Mounted on
/dev/md/dsk/d0 17633090 13656020 3800740 79% /
/devices 0 0 0 0% /devices
ctfs 0 0 0 0% /system/contract
proc 0 0 0 0% /proc
mnttab 0 0 0 0% /etc/mnttab
swap 56761464 1688 56759776 1% /etc/svc/volatile
objfs 0 0 0 0% /system/object
fd 0 0 0 0% /dev/fd
swap 57732088 972312 56759776 2% /tmp
swap 56759856 80 56759776 1% /var/run
# df -n /tmp
/tmp : tmpfs
|
tmpfs 파일 시스템은 가상 메모리 공간(swap)을 저장공간으로 사용한다.
따라서 /tmp 파일 시스템에 파일을 많이 만들면 가상 메모리 공간이 줄어들어서
프로세스들이 사용할 공간이 그 만큼 줄어들게 된다.
|
 SWAPdev
|
현재값
|
스왑 디바이스(swap device)의 사용량 (MB 단위)
스왑 디바이스의 사용량은 다음과 같이 swap 명령어로 알수 있다.
# swap -l
swapfile dev swaplo blocks free
/dev/dsk/c0d0s1 102,1 8 2104504 2097880
|
현재 이 시스템의 스왑 디바이스의 사용량은 3312 KB( (2104504-2097880)/2 )이다.
위의 명령어서 보여주는 값은 512바이트 단위의 블럭개수이다. 따라서, 실제 사용량은
다음과 같이 계산할 수 있다.
(blocks - free) / 2 ---> KB
|
 NET_LO_PKT
|
초당값
|
로컬 인터페이스(lo0)에 전송된 초당 패킷의 수
-
in input packets
-
out output packets
|
 NET_RE_PKT
|
초당값
|
리모트 인터페이스(lo0를 제외한 인터페이스)에 전송된 초당 패킷의 수
-
in input packets
-
out output packets
|
 NET_RE_KB
|
초당값
|
리모트 인터페이스(lo0를 제외한 인터페이스)에 전송된 초당 데이타 양 (KB 단위)
-
in kilobytes input packet
-
out kilobytes output packet
|
 NET_ERR
|
분당값
|
네트웍 인터페이스의 오류 횟수
오류에는 입력오류(ierrors), 출력오류(oerrors), 콜리전(collisions)을 포함한다.
각 네트웍 인터페이스에 대한 오류는 다음과 같이 netstat 명령어로 알 수 있다.
# netstat -i
Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue
lo0 8232 loopback localhost 469111562 0 469111562 0 0 0
ce1 1500 king king 3038812304 0 3992415458 0 0 0
ce2 1500 lion lion 47749607 0 28276937 0 0 0
|
netstat 명령어에서 보여주는 값은 시스템 부팅부터 누적된 값이고, ParmView에서
보여주는 값은 분당 발생한 오류에 대하여 그래프를 그려준다.
|
 SYSCALL
|
초당값
|
System Call 횟수
[vmstat의 sy 컬럼과 같음]
|
 SYS_RW
|
초당값
|
read/write 시스템 콜의 횟수
-
r read
-
w write
read/write 시스템 콜에는 다음과 같은 시스템 콜이 해당된다.
read(), readv(), pread()
write(), writev(), pwrite()
[sar -c의 sread/s, swrit/s 컬럼과 같음]
|
 THR_CRT
|
초당값
|
쓰레드를 생성한 횟수
쓰레드는 thr_create() 시스템 콜에 의해 생성된다.
|
 SEMA
|
초당값
|
semaphore operation 시스템 콜의 횟수
semaphore operation 시스템 콜에는 다음과 같은 시스템 콜이 해당된다.
semop(), semtimedop()
[sar -m의 sema/s 컬럼과 같음]
|
 MSG
|
초당값
|
message operation 시스템 콜의 횟수
message operation 시스템 콜에는 다음과 같은 시스템 콜이 해당된다.
msgrcv(), msgsnd()
[sar -m의 msg/s 컬럼과 같음]
|
 NAMEi
|
초당값
|
파일명을 조사하여 vnode 정보를 가져오는 횟수
이러한 NAMEi의 동작을 유발시키는 시스템 콜에는 다음과 같은 것이 있다.
stat(), open(), create(), link(), unlink(), mkdir(), chdir(), ...
위와 같이 파일명을 access하는 시스템 콜 또는 커널 내부의 루틴에서 파일명에 대한 vnode 정보를 가져오기 위해
NAMEi 동작을 유발시킨다.
[sar -a의 namei/s 컬럼과 같음]
|
 INTR
|
초당값
|
인터럽트의 횟수
[vmstat의 in 컬럼과 같음]
|
 CS
|
초당값
|
Context Switching 횟수
-
vol voluntary context switches
-
inv involuntary context switches
[mpstat의 csw,icsw 컬럼과 같음]
mpstat 명령어의 csw는 voluntary context switches + involuntary context switches이다.
|
 LOCK
|
초당값
|
첫번째 시도하여 lock을 획득하지 못한 횟수
-
m mutex lock
-
rw read/write lock
[mpstat의 smtx, srw 컬럼과 같음]
|
 MJF
|
초당값
|
Major Fault 횟수
[mpstat의 mjf 컬럼과 같음]
|
 FD
|
현재값
|
파일 디스트립트의 개수
현재 오픈된 파일 디스크립트의 개수
[sar -v의 file-sz 컬럼과 같음]
|
 TCP_CurEst
|
현재값
|
현재 "ESTABLISHED" 된 TCP 소켓의 개수
[netstat -s의 tcpCurrEstab 컬럼과 같음]
|
 TCP_Open
|
초당값
|
TCP 소켓을 오픈한 횟수
-
a active open
-
p passive open
[netstat -s의 tcpActiveOpens, tcpPassiveOpens 컬럼과 같음]
|
 TCP_Seg
|
초당값
|
입출력한 TCP 세그먼트의 횟수
-
in input segment
-
out output segment
[netstat -s의 tcpInSegs, tcpOutSegs 컬럼과 같음]
|
 TCP_Retrans
|
분당값
|
재전송한 TCP 세그먼트의 횟수
[netstat -s의 tcpRetransSegs 컬럼과 같음]
|
 TCP_Drop
|
분당값
|
TCP connection이 Drop된 횟수
-
q drop from q
-
q0 drop from q0
-
r drop from retransmission timeout
[netstat -s의 tcpListenDrop, tcpListenDropQ0+tcpHalfOpenDrop, tcpTimRetransDrop 컬럼과 같음]
|
 TCP_Reset
|
분당값
|
TCP connection이 reset된 횟수
-
att tcpAttemptFails
-
est tcpEstabResets
-
out tcpOutRsts
tcpAttemptFails
|
The number of times that TCP connections
have made a direct transition to the CLOSED state from
either the SYN-SENT state or the SYN-RCVD state, plus the
number of times TCP connections have made a direct transition
to the LISTEN state from the SYN-RCVD state.
|
tcpEstabResets
|
The number of times TCP connections have
made a direct transition to the CLOSED state from either the
ESTABLISHED state or the CLOSE-WAIT state. The number of times TCP connections have
made a direct transition to the CLOSED state from either the
ESTABLISHED state or the CLOSE-WAIT state.
|
tcpOutRsts
|
The number of TCP segments sent containing the RST flag.
|
att는 소켓의 상태가 SYN-SENT 또는 SYN_RCVD 단계에서 CLOSED 상태로
가거나, SYN_RCVD 상테에서 LISTEN 상태로 가는 것.
est는 소켓의 상태가 ESTABLISHED 또는 CLOSE-WAIT 단계에서 CLOSED 상태로
가는 것.
out는 시스템이 보낸 RST 페킷의 개수.
[netstat -s의 tcpAttemptFails, tcpEstabResets, tcpOutRsts 컬럼과 같음]
|
 UDP_Dgram
|
초당값
|
입출력한 UDP 페킷의 횟수
-
in input packet
-
out output packet
[netstat -s의 udpInDatagrams, udpOutDatagrams 컬럼과 같음]
|
 UDP_NoPort
|
분당값
|
오픈되에 있지 않는 UDP 포트에 입력된 페킷의 횟수
[netstat -s의 udpNoPorts 컬럼과 같음]
IPv4에 대한 정보만 수집된다.
|
 UDP_Ovflow
|
분당값
|
UDP 버퍼가 full되에 손실된 페킷의 횟수
[netstat -s의 udpInOverflows 컬럼과 같음]
IPv4에 대한 정보만 수집된다.
|
 UDP_Cksum
|
분당값
|
책섬(check sum) 오류가 발생한 UDP 페킷의 횟수
[netstat -s의 udpInCksumErrs 컬럼과 같음]
IPv4에 대한 정보만 수집된다.
|
 IP_ResamF
|
분당값
|
IP 단에서 페킷 재조립에 실패한 횟수
네트웍 인터페이스의 MTU 크기보다 더 큰 UDP 데이타를 전송할 경우에 IP 단에서 MTU에 적합한
크기로 짤라서 전송하고, 수신 측에서 이것을 재조립하는데 여기서 문제가 발행한 경우에 횟수가 기록된다.
[netstat -s의 ipReasmFails 컬럼과 같음]
IPv4에 대한 정보만 수집된다.
|
 PS_NLWP
|
현재값
|
전체 프로세스의 쓰레드의 총 개수
하나의 프로세스는 최소 하나의 쓰레드가 있고, multi-threaded 프로그램은 2개 이상의 쓰레드를
가질 수 있다.
이 값은 PARM 페키지에 있는 psinfo 명령어로 수집된 것과 같다.
|
 PS_HPSTK
|
현재값
|
전체 프로세스의 hp+stk (stack + heap) 메모리의 크기 (MB 단위)
이 값은 PARM 페키지에 있는 psinfo 명령어로 수집된 것과 같다.
|
 PS_TOP_WCPU
|
현재값
|
프로세스 중에서 WCPU의 사용량이 제일 큰 3개의 프로세스의 WCPU 사용률
-
1 WCPU 사용률이 제일 높은 것
-
2 WCPU 사용률이 두번째 높은 것
그래프에 상단에 표시되는 수치 값은 WCPU 사용률이 제일 높은 값 한개(1)가 표시된다.
이 값은 PARM 페키지에 있는 psinfo 명령어로 수집된 것과 같다.
|
 PS_TOP_HS
|
현재값
|
프로세스 중에서 HP+STK의 크기가 제일 큰 2개의 프로세스의 HP+STK의 크기 (MB 단위)
-
1 HP+STK 사용량이 제일 높은 것
-
2 HP+STK 사용량이 두번째 높은 것
그래프에 상단에 표시되는 수치 값은 HP+STK 사용량 제일 높은 값 한개(1)가 표시된다.
이 값은 PARM 페키지에 있는 psinfo 명령어로 수집된 것과 같다.
|
 PS_TOP_RSS
|
현재값
|
프로세스 중에서 RSS의 크기가 제일 큰 2개의 프로세스의 RSS의 크기 (MB 단위)
-
1 RSS 사용량이 제일 높은 것
-
2 RSS 사용량이 두번째 높은 것
그래프에 상단에 표시되는 수치 값은 RSS 사용량 제일 높은 값 한개(1)가 표시된다.
이 값은 PARM 페키지에 있는 psinfo 명령어로 수집된 것과 같다.
|
 PS_TOP_SIZE
|
현재값
|
프로세스 중에서 SIZE의 크기가 제일 큰 2개의 프로세스의 SIZE의 크기 (MB 단위)
-
1 SIZE 사용량이 제일 높은 것
-
2 SIZE 사용량이 두번째 높은 것
그래프에 상단에 표시되는 수치 값은 SIZE 사용량 제일 높은 값 한개(1)가 표시된다.
이 값은 PARM 페키지에 있는 psinfo 명령어로 수집된 것과 같다.
|
Utitity 메뉴
hostview 명령어의 화면의 [Utility]->[Show Utility] 메뉴 버튼을 클릭하면 다음과 같이
유틸리티 페널이 화면의 아래에 표시된다.
hostview에 사용되는 메뉴는 다음과 같다.
메뉴 | 설명 |
File |
File 메뉴에는 다음과 같은 메뉴 아이템이 있다.
Connect |
"[Connect]" 메뉴 버튼을 클릭하면, 메인 화면이 로그인 화면으로 변한다.
이미 연결되어 있으면 이 메뉴 버튼은 동작하지 않는다. 다른 시스템으로
연결하려면, "[File]->[Stop]" 메뉴 버튼을 먼저 누른 다음에
"[Connect]" 메뉴 버튼을 사용할 수 있다.
디폴트 포트가 아닌 다른 포트 번호를 사용하려면 호스트 명뒤에 콜론(:)을
붙이고 포트 번호를 지정하면 된다.
hostname:port
만일 호스트 이름을 그래프 상에서 다른 이름으로 사용하고 싶으면 호스트 명뒤에 슬래쉬(/)를 붙이고
별명을 지정할 수 있다. 별명이 지정되어 있으면 별명이 그래프의 타이틀에 표시된다.
호스트명을 지정하는 형식은 다음과 같다.
hostname[:port][/alias] [Login]
dbserver1 guest
192.99.88.9/tiger
192.99.88.9:8880/tiger root
dbclient1/client1
별명(alias)을 지정하였을 경우, 별명에 사각괄호가 붙어져서 나온다.
예를 들면, tiger라고 이름을 지정하였으면, [tiger] 이라고 표시된다.
이러한 형식으로 호스트 명을 Parm 베이스 디렉토리 밑에 hosts.txt 파일에
저장할 수 있다. 이 파일에 저장된 내용은 [+] 버튼을 클릭하면
화면에 보여진다.
거기서 원하는 호스트 명을 선택할 수 있다.
Parm V10.2 부터는 로그인한 정보도 함께 관리한다. 최대 32개의 기록을 관리한다.
이 파일은 hostview가 시작할 때, 한번만 참조되고,
변경된 내용은 hostview가 종료될때 저장된다.
|
Reconnect |
연결된 connection이 중단되었을 경우에 이 메뉴 버튼을 누르면 다시 연결한다.
|
Stop |
서버와 연결된 connection을 중단한다.
|
New Window |
다른 서버와 접속하기 위하여 새로운 화면을 하나 더 만든다.
새로 생성된 화면은 기존의 화면과 독립적으로 동작한다.
Retry Interval과 Timeout Interval은 공통으로 사용된다.
MS Window XP에서는 하나의 실행파일에 대하여 하나의 프로세스만 동작하도록 설정되어 있다.
여러 시스템을 모니터 하려면
이 메뉴 버튼을 사용하여 여러 개의 화면을 띄워서 새로운 connection을 맺어야 한다.
|
Close Window |
연결되어 있는 TCP connection을 중단하고 현재 화면을 닫는다.
|
Exit |
모든 화면을 닫고 프로그램을 종료한다.
|
|
Config |
Config 메뉴에는 다음과 같은 메뉴 아이템이 있다.
Select Graphs |
"[Select Graphs]" 메뉴 버튼을 클릭하면 다음과 같은 화면이 나타난다.
여기서 보고 싶은 그래프를 선택하면 선택한 그래프만 보여준다.
해당하는 체크박스를 클릭하는 순서로 그래프를 보여준다.
hostview 명령어는 디폴트로 모든 항목에 대하여 그래프 보여준다.
Column
|
선택된 숫자 만큼의 컬럼으로 그래프를 배치한다.
0 를 선택하면 그래프 개수 만큼의 컬럼으로 배치한다.
즉, 선택한 그래프를 수평으로만 보여준다.
|
Size
|
개별 그래프의 크기를 지정한다.
크기를 WIDTHxHEIGHT 형태로 표시된다.
|
[Clear All]
|
선택된 체크박스를 클리어 한다.
|
[Select Normal]
|
다음의 그래프들이 선택된다.
CPU%, PMEM%, VMEM%, FILE_SYSTEM%, PROCESS, TOP_WCPU%, TOP_HS, FORK, SYSCALL
|
[Select All]
|
모든 그래프가 선택된다.
|
"[Select Graphs]" 화면에서 [Apply] 버튼을 클릭하면, 기존의 그래프는 클리어 되고 다시
그래프가 그려진다.
다음은 CPU%, PMEM%, VMEM%, PROCESS, TOP_WCPU 5개의 그래프를 선택하여 Size를 600x50으로 지정하고
Column을 1로 지정하여 그래프를 만든 예제이다.
그래프의 폭(width)이 60 보다 클 경우에는 X 축에 시간 정보가 나온다.
이 시간은 HH:MM (hour:minute) 형식이고,
오른쪽 끝을 기준 시간으로 하여 경과된 시간을 표시한다.
X 축의 검은색 표시선은 60 dot 간격이고 회색 표시선은 10 dot 마다 표시된다.
|
Interval |
"[Interval]" 메뉴 버튼을 클릭하면 다음과 같은 화면이 나타난다.
여기서 Retry Interval과 Timeout Interval을 지정할 수 있다.
Retry Interval
|
연결된 서버와 connection이 단절되었을 때, 지정한 시간이 지나면 다시 connection을
자동으로 맺는다. "None"을 선택하면, 자동으로 재접속을 시도 하지 않는다.
사용자가 "[Stop]" 메뉴 버튼을 클릭하거나 최초 실행에서 connection을 맺지 못한 서버는
재접속하지 않는다.
|
Timeout Interval
|
데이타를 수신할 시간에서 지정된 시간 간격 내에 데이타를 받지 못하면,
해당 TCP connection에 특별한 메세지를 보낸다.
|
|
Stop Beep
Sound On
Sound Off
Sound Count
Sound Control
|
"[Sound On]" 메뉴 버튼을 클릭하면, 메인 화면의 상태 정보 라인에
그림이 표시된다. 그리고
시스템의 통계값이 지정한 임계값 이상이면 beep 음을 발생한다.
"[Sound Off]" 메뉴 버튼을 클릭하면, 메인 화면의 상태 정보 라인에
그림이 없어지고, beep 음도 발생시키지 않는다.
"[Sound Count]" 메뉴 버튼을 클릭하면 다음과 같은 화면이 나타난다.
이것은 beep음을 어떻게 발생시킬 것인지를 지정한다. beep음을 한번만
발생할 것인지 interval 동안 1초에 한번씩 발생할 것인지를 선택한다.
"[Stop Beep]" 메뉴 버튼을 클릭하면 beep음 발생을 일시적으로 중단시킨다.
10초 간격으로 시스템을 모니터할 경우
임계조건에 해당하는 것이 있어서 beep을 발생할 경우, "Sound during interval"이
선택되었을 때, 10초 동안 1초에 한번씩 beep음이 발생한다.
이것을 중간에 중단하고 싶으면 "[Stop Beep]" 메뉴 버튼 클릭하면 된다.
beep음을 중간에 중단할 수 있는 또하나의 방법은 아무 그래프 화면에 마우스를 한번
클릭하면 된다.
"[Sound Count]" 메뉴 버튼과 "[Stop Beep]" 메뉴 버튼은 모든 윈도우에 공통으로
적용된다.
연결된 TCP connection이 끊어질 경우에도 beep음이 발생한다.
이때는 지정한 interval동안 1초에 4번씩 beep음이 발생한다.
interval이 5초 보다 적을 경우, 5초 동안 발생한다.
"[Sound Control]" 메뉴 버튼을 클릭하면 다음과 같은 화면이 나타난다.
여기서 각 그래프에 대하여 임계값을 지정할 수 있다.
시스템의 통계값이 지정한 임계값 이상이면
해당 그래프의 외곽선의 색깔이 빨간색으로 변경되고, "[Sound On]"이
설정되어 있으면 beep 음도 발생시킨다.
"New_Message"의 경우는 /var/adm/messages 파일의 크기나 시간이 변할 때, 적용된다.
이 화면에서 값을 변경하려면 먼저 해당 체크박스를 클릭하고 값을 지정하여 한다.
값이 지정되어 있어도 체크박스가 클릭되어 있지 않으면 임계조건을 조사하지 않는다.
"[Play sound for test]" 버튼을 클릭하면 beep 음을 들려준다.
|
Save Config |
"[Save Config]" 메뉴 버튼을 클릭하면 현재 설정되어 있는 상태를 구성파일에 저장한다.
저장되는 내용은 다음과 같다.
-. Retry Interval
-. Timeout Interval
-. Graph Mode(line, bar)
-. 선택된 그래프 와 column
-. Sound Control 설정값
구성파일 명은 hostview.cfg이고 이 파일은 Parm 베이스 디렉토리에 저장된다.
또한 hostview가 실행될 때, 이 구성파일을 참고한다.
Window Vista에서 'm'이라는 사용자가 [Save Config] 버튼을 클릭하면,
다음과 같이 저장되는 파일의 절대경로가 표시된다.
|
Set Title |
여기서 window의 제목을 변경할 수 있다.
|
Version Info |
hostview에 대한 버전 정보를 보여준다.
|
|
View
|
View 메뉴에는 다음과 같은 메뉴 아이템이 있다.
Bar Graph
|
Bar 그래프로 그린다.
|
Line Graph
|
Line 그래프로 그린다.
|
Clear Graph
|
그래프를 클리어하고 새로운 입력부터 그래프를 그린다.
|
Clear Message Mark
|
상태 라인에 있는 그림을 지운다.
/var/adm/messages 파일의 크기나 시간이 변경되었을 경우에 상태 라인에 그림이 표시된다.
그림을 지우는 또 하나의 방법은 "Command Panel"에서 "[tail messages]" 버튼을 클릭하면,
상태 라인에 있는 그림이 없어진다.
|
|
Utility
|
Utility 메뉴에는 "[Command Panel]" 메뉴 아이템이 있다. 이 버튼을 클릭하면,
일부 정의된 명령어를 실행할 수 있는 명령어 페널이 화면의 하단에 부착된다.
df -k
|
"# df -k" 명령어를 실행한 결과 를 보여준다.
|
tail messages
|
"# tail /var/adm/messages" 명령어를 실행한 결과를 보여준다.
|
vminfo.sh
|
/opt/JSparm/bin/JSvminfo.sh 실행한 결과를 보여준다.
이 파일에는 다음의 명령어를 실행한다.
# swap -s
# swap -l
|
psinfo-D.sh
|
/opt/JSparm/bin/JSpsinfo-D.sh 실행한 결과를 보여준다.
이 파일에는 다음의 명령어를 실행한다.
# /opt/JSparm/bin/psinfo -A 2 2 | /opt/JSparm/bin/psparse -D -
이 명령어를 실행하면 실행 직후에 한번 프로세스 정보를 수집하고
2초 후에 한번 더 데이타를 수집하여서 2초 동안 CPU 사용률이 큰 순서로
프로세스 정보를 보여준다. 자세한 내용은 psparse 명령어의 -D 옵션을
참고하십시오.
|
Sort 항목을 지정한 후에 [Psinfo] 버튼을 클릭하면 parmagentx 명령어에
포함된 psinfo 모듈을 사용하여 프로세스 정보를 보여준다. (/opt/JSparm/bin/psinfo 명령어를 실행하지 않음).
Sort 항목에 지정된 순서 중에 상위 20개(CPU% TOP5_HS는 각각 5개씩)에 해당하는 프로세스 정보를 보여준다.
Sort Field | 설명 |
CPU% TOP5_HS | CPU 사용률이 높은 순서로 5개의 프로세스와 HP+STK가 큰 순서로
상위 5개의 프로세스 정보를 보여준다. |
CPU% | CPU 사용률이 높은 순으로 정렬한다. |
PMEM% | 물리적 메모리 사용률이 높은 순으로 정렬한다. (RSS 순서와 같다)
|
HP+STK | heap + stack이 큰 순으로 정렬한다. |
RSS | 물리적 메모리에 적재된 크기가 큰 순으로 정렬한다. |
SIZE | 프로세스 메모리 크기가 큰 순으로 정렬한다. |
ELAPSED | 최근에 실행된 순으로 정렬한다. |
NLWP | 프로세스 중 LWP(light-weight process)가 많은 순으로 정렬한다. |
TIME | 프로세스 중 CPU의 누적 사용시간이 많은 순으로 정렬한다. |
CHILDTIME | 프로세스 중 자식 프로세스(child process)의 CPU의 누적 사용시간이 많은 순으로 정렬한다. |
Proc: CPU% | 같은 명령어들 끼리 그룹핑하여 CPU 사용률이 높은 순으로 정렬한다. |
Proc: NPROC | 같은 명령어들 끼리 그룹핑하여 프로세스 수가 많은 순으로 정렬한다. |
Proc: NLWP | 같은 명령어들 끼리 그룹핑하여 프로세스 중 LWP(light-weight process)가 많은 순으로 정렬한다. |
Proc: HP+STK | 같은 명령어들 끼리 그룹핑하여 heap + stack이 큰 순으로 정렬한다. |
Proc: ELAPSED | 같은 명령어들 끼리 그룹핑하여 프로세스 중 최근에
실행한 프로세스 순으로 정렬한다.
프로세스가 여러 개일 경우에 제일 먼저 실행된 프로세스를 기준으로 한다. |
Proc: TIME | 같은 명령어들 끼리 그룹핑하여 프로세스 중 CPU의 누적 사용시간이 많은 순으로 정렬한다. |
Proc: CHILDTIME | 같은 명령어들 끼리 그룹핑하여 프로세스 중 자식 프로세스의 CPU의 누적 사용시간이 많은 순으로 정렬한다. |
User: CPU% | 프로세스의 사용자별로 그룹핑하여 CPU 사용률이 높은 순으로 정렬한다. |
User: NPROC | 프로세스의 사용자별로 그룹핑하여 프로세스 수가 많은 순으로 정렬한다. |
User: NLWP | 프로세스의 사용자별로 그룹핑하여 프로세스 중 LWP(light-weight process)가 많은 순으로 정렬한다. |
User: HP+STK | 프로세스의 사용자별로 그룹핑하여 heap + stack이 큰 순으로 정렬한다. |
User: ELAPSED | 프로세스의 사용자별로 그룹핑하여 프로세스 중 최근에 실행한
프로세스 순으로 정렬한다.
프로세스가 여러 개일 경우에 제일 먼저 실행된 프로세스를 기준으로 한다. |
User: TIME | 프로세스의 사용자별로 그룹핑하여 프로세스 중 CPU의 누적 사용시간이 많은 순으로 정렬한다. |
User: CHILDTIME | 프로세스의 사용자별로 그룹핑하여 프로세스 중 자식 프로세스의 CPU의 누적 사용시간이 많은 순으로 정렬한다. |
자세한 내용은 psinfo 명령어를 참조하십시오
[Auto] 버튼을 클릭하면, 지정한 시간 간격으로 프로세스 정보를 자동으로 가져온다.
자동으로 psinfo의 결과를 가져올 경우에 그 결과 값은 서버에 연결된 프로세스가 공통으로
데이타를 받는다. 만일 3개의 client가 서버에 붙어 있을 경우 한쪽에서 Sort 옵션을 바꾸면
3개의 client가 모두 같이 바뀌게 된다.
|
X
|
Command Panel을 제거한다.
|
|
Parm 베이스 디렉토리
사용자 명이 guest인 경우:
MS Window Vista의 경우
사용자 홈 디렉토리 밑에 parm 디렉토리
예제) C:\Users\guest\parm
Solaris의 경우
사용자 홈 디렉토리 밑에 .parm 디렉토리
예제) $HOME/.parm
액세스 파일, /etc/parmclient.access
hostview, sysmon, cpuview 에서 로그인할 때, 서버 명과 로그인 ID와 패스워드를 넣고
"[Connect]" 버튼을 클릭하면 서버에 접속할 수 있다.
만일 로그인 없이 바로 ParmClient를 사용하려면, /etc/parmclient.access 파일을 만들고
- (minus sign)를 넣어 두면 된다.
특정 시스템에서 액세스한 경우만 로그인 없이 바로 사용하려면 그 시스템의 IP를
한줄에 하나씩 @IP 형식으로 넣어 두면 된다.
예를 들어, @127.0.0.1 을 넣어 두면 127.0.0.1에서 접속한 것은 로그인 과정을
거치지 않는다. 반드시 IP를 넣어야 한다. 호스트명은 안된다.
JS PARM V10.5 부터는 @IP/netmaskNumber 형식을 사용하여 VLSM 서브넷 매스킹을 사용할 수 있다.
예를 들어, 다음과 같이 24 비트 서브넷 마스킹을 지정하면,
@192.168.56.0/24
192.168.56.0 ~ 192.168.56.255 까지의 Host IP는 로그인 과정없이 바로 접속할 수 있다.
/etc/parmclient.access 파일이 없거나 그 내용에 + (plus sign)가 들어 있으면,
시스템에 있는 모든 사용자('root 사용자 제외)는 로그인 가능하다.
Parm V10.2 부터는 'root' 사용자는 명시적으로 지정하지 않으면, 로그인 할 수 없다.
root 사용자도 로그인 할 수 있도록 하려면, 다음과 같은 라인이 /etc/parmclient.access에 지정되어야 한다.
root
+
만일, 특정 사용자만 ParmClient를 사용하게 하고 싶으면, /etc/parmclient.access 파일에
사용자명을 한줄에 하나씩 넣어 두면 된다.
guest
tomas
user1
즉, /etc/parmclient.access 파일에 지정된 guest, tomas, user1 사용자만 ParmClient에 로그인할 수 있다.
각각의 사용자의 암호는 시스템 암호를 조사한다.
시스템 암호가 아닌 ParmClient 내부 암호를 만들어 사용할 수 있다.
형식은 다음과 같다.
user:password
암호는 다음과 같이 gwserv 명령어로 생성할 수 있다.
# /opt/JSparm/bin/gwserv -u guest -P mypass
guest:1A095108088ABACB3EF03E3FD870030982A3CE
|
password는 최대 16자리만 인식한다.
-P 옵션에서 password를 데쉬("-")를 지정하면, 패스워드를 표준입력에서 읽어 들인다.
# /opt/JSparm/bin/gwserv -u guest -P -
Password for guest:
Retype Password for guest:
guest:3BDC54353DB6577A31ED3F30917DC8C643A08F
|
만일 다음과 같은 내용이 /etc/parmclient.access 파일에 있다면,
@192.1.1.10
guest:3BDC54353DB6577A31ED3F30917DC8C643A08F
tomas
user1:
IP가 192.1.1.10 인 시스템의 사용자는 로그인 과정없이 들어오고,
guest 사용자는 ParmClient 페스워드를 사용하고, tomas는 시스템 페스워드를 사용하고, user1은 로그인 할 수 없다.
user1은 페스워드 부분에 암호화된 페스워드가 없기 때문에 로그인할 수 없다.
parmagentx 데몬 프로세스를 root가 아닌 noboy 사용자 권한으로 실행할 경우에는 시스템
페스워드를 조사할 수 없다. 이런 경우에는 페스워드 없이 로그인할 수 있도록 하거나 /etc/parmclient.access 파일에
암호화된 페스워드를 함께 넣어 두어야 한다.
액세스 파일을 조사할 때, 먼저 매치되는 값에 따라 행동이 결정된다.
만일 192.1.1.10에서 들어오는 것은 로그인 과정없이 수행하고, root 사용자를 제외한 나머지는 로그인
과정을 거쳐서 들어 오게 하고 싶으면 액세스 파일에 다음과 같이 지정할 수 있다.
@192.1.1.10
+
만일 다음과 같이 지정하면 192.1.1.10에서 들어오는 것은 로그인 과정없이 수행하고
나머지는 로그인 자체도 할 수 없다.
@192.1.1.10
만일 다음과 같이 지정하면, root 사용자를 제외한 모든 사용자가 로그인 과정을 거친다(root 사용자는 로그인 불가).
@192.1.1.10은 의미 없는 것이 된다.
+
@192.1.1.10
PARM V10.6 부터 parm.access 파일이 추가되었다.
parmclient.access 파일이 없으면, parm.access 파일을 찾는다. parm.access 파일의 형식은 parmclient.access 파일과
동일하다.
parm.access 파일을 PARM View에서도 참조하기 때문에 parm.access 파일만 정의해서 사용하면,
PARM View나 PARM Client가 하나의 aceess 파일을 사용할 수 있다.
|
|