psinfo_dailymon

   psinfo_dailymon

  사용법


	psinfo_dailymon directory condition [interval count]

	Options are as follows:

	directory    directory to save data
	condition    the same condition for psinfo -M option
	interval     interval time(second)
	count        times to get the info
  설명

Parm V7.0에서 mmonx_proc가 추가되어서 주기적으로 프로세스 정보를 수집하고 수집된 정보를 ParmView 에서 쉽게 볼 수 있다. psinfo_dailymon 대신 mmonx_proc 사용하는 것이 더 편리하다.
psinfo_dailymon은 다음과 같은 내용을 가지고 있는 쉘 스크립트이고, cron 테이블에 등록하여 주기적으로 프로세스들을 모니터하는데 사용된다.

#! /usr/bin/ksh
#

if [ $# = 4 ]
then
	DIRECTORY=$1
	CONDITION=$2
	INTERVAL=$3
	COUNT=$4
elif [ $# = 2 ]
then
	DIRECTORY=$1
	CONDITION=$2
	INTERVAL=
	COUNT=
else
	echo "Usage: psinfo_dailymon directory condition [interval count]"
	exit 1
fi

OUTPUT=$DIRECTORY/psinfo.`date +%d`

#
# Remove old data file
# Append today's data
#
if [ -f $OUTPUT ]
then
	find $OUTPUT -mtime +7 -exec rm {} \;
fi
exec /opt/JSparm/bin/psinfo -M $CONDITION $INTERVAL $COUNT >> $OUTPUT &

이 쉘 스크립트는 psinfo -M 옵션으로 프로세스의 상태를 조사하여, 지정한 조건에 해당되는 프로세스가 있으면, 그 프로세스 정보를 psinfo_dailymon 명령어에 지정한 디렉토리에 psinfo.dd (dd는 day(01-31)) 형식의 파일명으로 저장한다. 같은 날에 여러 번 psinfo_dailymon 명령어를 실행하면 psinfo.dd 파일에 내용을 추가하고, 지난 달의 데이타가 있으면, 그 파일을 지우고 새로 만든다.

cron 테이블에 등록할 경우 다음과 같이 2 가지의 경우가 있을 수 있다.

  0 0 * * * /opt/JSparm/bin/psinfo_dailymon /PSLOG wcpu=70,hs=30 60 1440
위의 /opt/JSparm/bin/psinfo_dailymon /PSLOG wcpu=70,hs=30 60 1440 명령어는 cron에 의해 매일 0 시에 실행된다.
이 명령어는 프로세스 정보를 60초 간격으로 1440번(60 *24 = 1440: 1 day) 조사하여 CPU 사용률이 70% 이상이거나 HP+STK(heap+stack)이 30MB 이상인 프로세스 정보를 /PSLOG/psinfo.dd (dd는 day(01-31)) 파일에 저장한다.

  * * * * * /opt/JSparm/bin/psinfo_dailymon /PSLOG wcpu=70,hs=30
위의 /opt/JSparm/bin/psinfo_dailymon /PSLOG wcpu=70,hs=30는 매분 cron에 의해 실행된다. 여기서는 psinfo_dailymon은 한번만 데이타를 수집한다.

위의 두개의 cron entry중 필요한 것을 선택하여 지정하면 된다.
여기서 wcpu를 사용한 것에 유의하십시오.

/opt/JSparm/bin/psinfo_dailymon /PSLOG wcpu=70,hs=30 60 1440 명령어의 실제 실행되는 명령어는 다음과 같다.

  PID  PPID USERNAME   SIZE    RSS HP+STK S NLWP   WCPU%   CPU%  MEM%  ELAPSED        TIME CMDLINE
22953  1 root  0.953M 0.859M 0.086M S  1  0.08%  0.08%  0.2%  0d57724   19.23 /opt/JSparm/bin/psinfo -M wcpu=70,hs=30 60 1440

psinfo_dailymon과 gwserv를 결합하여 사용하면, 사용자는 리모트 시스템에서 쉽게 psinfo_dailymon의 결과를 볼 수 있다. 예를 들어 psinfo_dailymon의 결과를 /PSLOG 디렉토리에 저장하고, gwserv의 도큐멘트 루트 디렉토리를 /PSLOG로 다음과 같이 지정하고,

# gwserv -p 9001 -d /PSLOG

리모트 시스템에서 htpp://hostname:9001 주소로 시스템으로 접속하면, 다음과 같은 내용이 보인다.
Directory listing of /
Up to higher level directory

 Name                                  Size          Date                  

  • psinfo.01 0 Sep-01-2001 00:00:00
  • psinfo.02 0 Aug-02-2001 00:00:00
  • psinfo.03 0 Aug-03-2001 00:00:00
  • psinfo.04 0 Aug-04-2001 00:00:00
  • psinfo.05 0 Aug-05-2001 00:00:01
  • psinfo.06 0 Aug-06-2001 00:00:00
  • psinfo.07 0 Aug-07-2001 00:00:00
  • psinfo.08 838 Aug-08-2001 17:41:11
  • psinfo.09 0 Aug-09-2001 00:00:00
  • psinfo.10 0 Aug-10-2001 00:00:01
  • psinfo.11 0 Aug-11-2001 00:00:00
  • psinfo.12 0 Aug-12-2001 00:00:00
  • psinfo.13 0 Aug-13-2001 00:00:00
  • psinfo.14 0 Aug-14-2001 00:00:00
  • psinfo.15 0 Aug-15-2001 00:00:00
  • psinfo.16 0 Aug-16-2001 00:00:00
  • psinfo.17 0 Aug-17-2001 00:00:00
  • psinfo.18 0 Aug-18-2001 00:00:00
  • psinfo.19 0 Aug-19-2001 00:00:01
  • psinfo.20 0 Aug-20-2001 00:00:00
  • psinfo.21 0 Aug-21-2001 00:00:01
  • psinfo.22 0 Aug-22-2001 00:00:00
  • psinfo.23 0 Aug-23-2001 00:00:00
  • psinfo.24 0 Aug-24-2001 00:00:01
  • psinfo.25 0 Aug-25-2001 00:00:00
  • psinfo.26 0 Aug-26-2001 00:00:00
  • psinfo.27 0 Aug-27-2001 00:00:00
  • psinfo.28 0 Aug-28-2001 00:00:01
  • psinfo.29 0 Aug-29-2001 00:00:01
  • psinfo.30 0 Aug-30-2001 00:00:00
  • psinfo.31 434 Aug-31-2001 15:26:01
  • 위의 내용중에서 파일의 크기가 0 이 아닌 파일을 클릭하면, 지정한 조건에 해당하는 프로세스 정보를 볼 수 있다.

    ParmView를 위한 gwserv가 실행되어 있으며, gwserv를 별도로 실행하는 것 보다, ParmView 홈 디렉토리 밑에 /PSLOG 디렉토리를 심볼릭 링크로 만들어 두면, 9900 포트로 psinfo_dailymon 로그를 쉽게 볼 수 있다.

    # cd /opt/JSparm/parmview
    # ln -s /PSLOG pslog
    

    위와 같이 심볼릭 링크를 만들었다면, 다음과 같은 URL로 사용할 수 있다.

    http://hostname:9900/pslog