pbsnodes 명령어/클러스터 by 바죠

man pbsnodes

pbsnodes - pbs node manipulation

pbsnodes [-{c|o|r}] [-s server] [nodename ...]
pbsnodes -{a|l} [-s server]

The pbsnodes command is used to mark nodes down, free or off line. It can also be used to list nodes and their state.
Node information is obtained by sending a request to the PBS job server.

If pbsnodes is run without options (other than -s ), the nodes specified as operands are marked DOWN and unavailable to
run jobs. It is importaint that all the nodes known to be down are given as arguments on the command line. This is
because nodes which are not listed are assumed to be UP and will be indicated as such if they were previously marked
DOWN. None of the other options will change the marking for nodes which are not given on the command line.

In order to execute pbsnodes with other than the -a or -l options, the user must have PBS Manager or Operator privilege.

-a All nodes and their attributes are listed. The attributes include "state" and "properities".

-c Clear OFFLINE or DOWN from listed nodes. The listed nodes are "free" to be allocated to jobs.

-l List all nodes marked in any way.

-o Mark listed nodes as OFFLINE even if currently in use. This is different from being marked DOWN. An
automated script that checks nodes being up or down and calls pbsnodes with a list of nodes down will not
change the status of nodes marked OFFLINE. This gives the administrator a tool to hold a node out of
service without changing the automatic script.

-r clear OFFLINE from listed nodes.

-r specify the PBS server to which to connect.
pbsnodes -a |grep free|wc
35 105 630
지금 free 상태(즉, 사용 가능한) 노드 수가 35임을 알 수 있다.

가능한 상태: down,

down일 경우, super user 가 이 노드를 offline 상태로 만들어 줄 필요가 있다.

배치 파일 안에서
#PBS -l nodes=필요nodes수:그룹+필요nodes수:그룹

예: #PBS -ㅣ nodes=2:beta+2:gamma
beta에서 2대 그리고 gamma 에서 2대 = 총 4대

작업을 새로이 서브미트시킬 때
노드가 다운상태일때는
자동으로 알아서 다운된 머신을 제외시킨 상태에서
작업이 안도는 머신을 선택하여 서브미트합니다.

노드 상태를 알고싶으실 때는

pbsnodes -a
하시면 상태가 나옵니다.

pbsnodes -o 노드이름 --> root 유저로서 offline 상태 만들기
예: pbsnodes -o hpc22

pbsnodes -c 노드이름 --> root 유저로서 offline 해제
예: pbsnodes -c hpc22

[19] Error: Unable to open a GM port !

미리넷카드의 모듈에 문제 발생


##!/bin/csh -f
#set nodes = (hpf1 hpf2 hpf3 hpf4 hpf5 hpf6 hpf7 hpf8 \
# hpf9 hpf10 hpf11 hpf12 hpf13 hpf14 hpf15 hpf16 \
# hpf17 hpf18 hpf19 hpf20 hpf21 hpf22 hpf23 hpf24 \
# hpf25 hpf26 hpf27 hpf28 hpf29 hpf30 hpf31 hpf32 \
# hpf33 hpf34 hpf35 hpf36 hpf37 hpf38 hpf39 hpf40 \
# hpf41 hpf42 hpf43 hpf44 hpf45 hpf46 hpf47 hpf48 \
# hpf49 hpf50 hpf51 hpf52 hpf53 hpf54 hpf55 hpf56 \
# hpf57 hpf58 hpf59 hpf60 hpf61 hpf62 hpf63 hpf64 \
# hpf65 hpf66 hpf67 hpf68 hpf69 hpf70 hpf71 hpf72 \
# hpf73 hpf74 hpf75 hpf76 hpf77 hpf78 hpf79 hpf80 \
# hpf81 hpf82 hpf83 hpf84 hpf85 hpf86 hpf87 hpf88 \
# hpf89 hpf90 hpf91 hpf92 hpf93 hpf94 hpf95 hpf96 \
# hpf97 hpf98 hpf99 hpf100 hpf101 hpf102 hpf103 hpf104 \
# hpf105 hpf106 hpf107 hpf108 hpf109 hpf110 hpf111 hpf112 \
# hpf113 hpf114 hpf115 hpf116 hpf117 hpf118 hpf119 hpf120 \
# hpf121 hpf122 hpf123 hpf124 hpf125 hpf126 hpf127 hpf128 )
#foreach n ($nodes)
# echo '----------' $n '-----------'
# rsh $n $*

k=`expr $j '+' 1`
while [ "$i" -lt "$k" ]
echo "--hpc$i "
rsh hpf$i $3
#rsh hpf$i /usr/local/INSTALL/gm/bin/gm_allsize --quiet
sleep 1

pexec 110 127 ps -u ihlee |grep admd

--------offline 상태 확인 명령어---------
 pbsnodes -l
hpf100               offline
hpf105               offline
hpf107               offline



-----(새유저 등록방법)------------

루트 유저로서

#adduser ID


#cd /var/yp



#ypcat passwd

라고 치신 후 새ID가 등록되어 있으면 됩니다.


qsub  job_script
qstat  -a
qstat  -u userID
qstat  -an
qdel  jobID(number)

qhold jobID(number)
qrls  jobID(number)

0. 에어콘
1. UPS (있으면)
2. 네트워크 스위치
3. 프론트엔드 서버의 외부 디스크 시스템 (있으면)
4. 프론트엔드 서버
5. 컴퓨팅 노드들의 부팅 서버들
6. 컴퓨팅 노드들


(1) 다운된 노드를 찾는다. (root 유저가 아니어도 됩니다.)



/usr/local/bin/stat_mon 1 128 > /tmp/live

cat /tmp/live |gerp No


hpf105.kriss.re.kr: No route to host
hpf105.kriss.re.kr: No route to host
hpf107.kriss.re.kr: No route to host
hpf107.kriss.re.kr: No route to host


(*참고로 cetus에서 stat_mon뒤에 쓰는 번호는 1 ~ 128번 을 의미하며

의심가는 범위를 정하셔도 됩니다.)



(2)qstat -n 에서 job에는 물려 있으나 위 과정에서 "No route ~~" 로 나오는 노드를 찾으신 후


"root유저"로서 아래의 과정을 진행하시면 됩니다.


pbs에 관한 데몬을 kill합니다.


# ps ax|grep pbs

32281 ?        Ss     0:00 /usr/local/sbin/pbs_server -a TRUE
32283 ?        Ss     0:00 /usr/local/sbin/pbs_sched -a 500

kill -9 32281 32283


(3)다음 디렉트리로 이동하시어 해당 번호의 화일들 .JB .SC 를 지우신 후



#cd   /PBS/server_priv/jobs/



1261.cetus0.JB  1262.cetus0.JB  1263.cetus0.JB  1264.cetus0.JB 

1261.cetus0.SC  1262.cetus0.SC  1263.cetus0.SC  1264.cetus0.SC

#rm -rf 1236.*


(4)pbs 데몬 다시 실행합니다.





마지막으로 qstat -n확인하시어 해당 job이 없어졌고

pbsnodes -l 하시어 해당 노드가 "state-unknown,down"

으로 나오면 됩니다.


#psbnodes -a|grep free |nl


하시면 현재 빈 노드의 갯수를 알수 있읍니다.

res1=$(date +%s.%N)
for i in {1..10000}
qstat -a |grep ihlee|grep H|awk '{split($0,a,"."); print "qrls ", a[1]}' |sh -x
sleep 600.
res2=$(date +%s.%N)
dt=$(echo "$res2 - $res1" | bc)
dd=$(echo "$dt/86400" | bc)
dt2=$(echo "$dt-86400*$dd" | bc)
dh=$(echo "$dt2/3600" | bc)
dt3=$(echo "$dt2-3600*$dh" | bc)
dm=$(echo "$dt3/60" | bc)
ds=$(echo "$dt3-60*$dm" | bc)
printf "Total runtime: %d:%02d:%02d:%02.4f\n" $dd $dh $dm $ds
echo "Total runtime: " $dd $dh $dm $ds


du -hs .
파일 총 사용량 정리하기

man 페이지 ps 파일로 출력하기
man -t pgf90 >gg.ps
gv gg.ps

gzip 과 tar를 동시에 수행하기
tar cvfz test.tar.gz *


댓글 입력 영역

최근 포토로그