본문 바로가기
IT 이야기 - About IT

[HP-UX] glance adviser 사용하기

by 회사원 주씨 2008. 7. 31.
반응형

<session 1>

# extract 로 특정 시간의 glance date를 볼 수 있지만
# 항상 interval이 5분이라는 제한사항이 있습니다.
# 그럴 때 glance의 adviser mode로 data를 추출 할 수 있죠.


1. syntax file을 작성한다.
  a. # vi /hpk/glance_adviser
print "------------------------------", gbl_stattime
print "process        pid        pri      cpu        rss        vss"
print "--------------------------------------------------------------------------"
process loop {
    if ((proc_proc_id != 0)) then
       print proc_proc_name|12,"        " proc_proc_id, "        ",proc_pri, "        ", proc_cpu_total_util, "        ",proc_mem_res, "        ", proc_mem_virt   

       print "        "
  --> process들의 cpu 사용율, 메모리 점유율들을 모두 확인

2. glance adviser mode를 사용하여 정보를 gathering
  a. # glance -interations 2 -adviser_only -syntax /hpk/glance_adviser > /hpk/glance_report.txt

# cat glance_mon.sh
# glance -advisor_only -syntax a.a -j 5 > a.out &
# glance -advisor_only -syntax glance_parm -j 5 > a.out1 &
# glance -advisor_only -syntax network_parm -j 5 > a.out4 &
# glance -advisor_only -syntax network_parm1 -j 2 > a.out1 &
# glance -advisor_only -syntax k1.adv -j 5 > f.out &

#> cat glance_parm
print "-------------------------------------------------------------------------
------------------------------"
print "   Date      ACTIVE   TOT    SYSCALL   SYS  USER   REALTIME  CSW   INTER
IDLE   NORM  IO_RATE   NET_Q"
print "-", gbl_stattime,"-"
," ",GBL_ACTIVE_CPU|7|0
," ",GBL_CPU_TOTAL_UTIL|5|0
,"    ",GBL_CPU_SYSCALL_UTIL|5|0
,"   ",GBL_CPU_SYS_MODE_UTIL|5|0
," ",GBL_CPU_USER_MODE_UTIL|5|0
,"   ",GBL_CPU_REALTIME_UTIL|5|0
,"   ",GBL_CPU_CSWITCH_UTIL|5|0
,"   ",GBL_CPU_INTERRUPT_UTIL|5|0
," ",GBL_CPU_IDLE_UTIL|5|0
," ",GBL_CPU_NORMAL_UTIL|5|0
,"   ",GBL_DISK_PHYS_IO_RATE|7|0
," ",GBL_NET_OUTQUEUE|5|0
print "-------------------------------------------------------------------------
------------------------------"

#cat network_parm

print "-------------------------------------------------------------------------
------------------------------"
print "   Date      ACTIVE   TOT    SYSCALL   SYS  USER   REALTIME  CSW  IDLE
NORM  IO_RATE   NET_Q  IN_NAME NET_IN_R NET_IN "
print "-", gbl_stattime,"-"
," ",GBL_ACTIVE_CPU|7|0
," ",GBL_CPU_TOTAL_UTIL|5|0
,"    ",GBL_CPU_SYSCALL_UTIL|5|0
,"   ",GBL_CPU_SYS_MODE_UTIL|5|0
," ",GBL_CPU_USER_MODE_UTIL|5|0
,"   ",GBL_CPU_REALTIME_UTIL|5|0
,"   ",GBL_CPU_CSWITCH_UTIL|5|0
," ",GBL_CPU_IDLE_UTIL|5|0
," ",GBL_CPU_NORMAL_UTIL|5|0
,"   ",GBL_DISK_PHYS_IO_RATE|7|0
," ",GBL_NET_OUTQUEUE|5|0
,"    ",BYNETIF_NAME|5|0
,"    ",BYNETIF_IN_BYTE_RATE|5|0
,"    ",BYNETIF_OUT_BYTE_RATE|5|0
print "-------------------------------------------------------------------------
------------------------------"


<session 2>

adviser를 이용하게 되면 고객이 원하시는 부분만을 지정을 해서
glance process가 떠 있는 동안의 정보를 보실 수 있습니다

우선 vi로 adviser file을 만듭니다

만약 memory부분만을 보고자 한다면

vi /tmp/myadv

print "-----", gbl_stattime
print "memory util =", gbl_mem_util|7|0
print "memory sys =", gbl_mem_sys|7|0
print "memory user =", gbl_mem_user|7|0
print "memory cache =", gbl_mem_cache|7|0
print "memory free =", gbl_mem_free|7|0

그리고

glance -adviser_only -syntax /tmp/myadv > /tmp/result_glance &

를 하시면 5초간격으로 /tmp/result_glance에 쌓이게 됩니다

more /tmp/result_glance
-----09:43:01
memory util = 96
memory sys = 7048
memory user = 48128
memory cache = 7792
memory free = 2568
-----09:43:06
memory util = 96
memory sys = 7048
memory user = 48400
memory cache = 7792
memory free = 2296
-----09:43:11
memory util = 96
memory sys = 7048
memory user = 48376
memory cache = 7792
memory free = 2320

와 같이 쌓이게 됩니다
만약 5초보다는 2시간간격으로 원하신다면 -j 7200을 추가하시면 됩니다.

<session 3>

구성은 모두 3개의 파일로 되어 있습니다.
 
monitor.adv : glance adviser script 파일
start.sh : glance adviser를 실행하는 스크립트
stop.sh : glance adviser를 종료하는 스크립트
 
각 파일의 내용은 아래와 같습니다.
 
monitor.adv
===========
 
PRINT "====================================================================================="
PRINT "DATE / TIME: ", GBL_STATDATE, " - ", GBL_STATTIME
PRINT "====================================================================================="
PRINT "Process name    |   PID    | Total |  SYS  |  USER | DISK | DISK  | DISK  |   MEM    "
PRINT "                |          |  CPU  |  MODE |  MODE | PHYS | READ  | WRITE |   RES    "
PRINT "====================================================================================="
 
PROCESS LOOP {
        PRINT   PROC_PROC_NAME, "|",
                PROC_PROC_ID, "|",
                PROC_CPU_TOTAL_UTIL, "|",
                PROC_CPU_SYS_MODE_UTIL, "|",
                PROC_CPU_USER_MODE_UTIL, "|",
                PROC_DISK_PHYS_IO_RATE, "|",
                PROC_DISK_LOGL_READ_RATE, "|",
                PROC_DISK_LOGL_WRITE_RATE, "|",
                PROC_MEM_RES    
}
 
start.sh
========
 
DATE=`date "+%y%m%d%H%M%S"`
nohup glance -j 60 -adviser_only -syntax ./monitor.adv 1>> ./log.$DATE 2>/dev/null &
 
stop.sh
=======
 
kill -9 $(ps -ef | grep adviser_only | grep monitor.adv | awk '{print $2}')

 

728x90

'IT 이야기 - About IT' 카테고리의 다른 글

HP-UX Admin 1 (Chapter 6-8)  (0) 2008.07.31
HP-UX Admin 1 (Chapter 9-12)  (0) 2008.07.31
[APACHE] Apache에서 maxclient 수 늘리기  (0) 2008.07.31