<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}')
'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 |