PBS是功能最爲齊全,歷史最悠久,支持最廣泛的本地集羣調度器之一。 PBS的目前包括openPBS,PBS Pro和Torque三個主要分支。 其中OpenPBS是最早的PBS系統,目前已經沒有太多後續開發,PBS pro是PBS的商業版本,功能最爲豐富。Torque是Clustering公司接過了OpenPBS,並給與後續支持的一個開源版本,下面就Torque4.0版本的安裝和配置進行介紹。
一、系統:CentOS7
二、下載Torque
打開網頁進行下載相應版本:http://www.adaptivecomputing.com/resources/downloads/torque/
三、Torque 安裝
1.下載或拷貝torque-4.0.0.tar.gz 到 torque目錄中
2.解壓torque-4.0.0.tar.gz
[qium@centos torque]$tar -zxvf torque-4.0.0.tar.gz
3.進入torque-4.0.0
[qium@centos torque]$cd torque-4.0.0
4.切換到root用戶
[qium#centos torque-4.0.0]$ su
[root@centos torque-4.0.0]$
5.檢查環境與配置makefile
[root@centos torque-4.0.0]$./configure #後面可不加安裝目錄,默認爲/var/spool/torque
6.運行make
[root@centos torque-4.0.0]$make
7.運行make install
[root@centos torque-4.0.0]$make install #按默認安裝時,pbs_server pbs_sched pbs_mom trqauthd 會在/usr/local/sbin/下,不需要加入環境變量中。如果指定安裝目錄,則需要加入環境變量,方法是修改/etc/profile.d/torque.sh (root) 或 /home/qium/.bash_profile 中的PATH即可。
8.多節點管理工具生成。如當前節點爲主節點(管理節點),則其它節點爲“副”節點,主節點需管理這些“副”節點,方便節點之間數據傳輸
[root@centos torque-4.0.0]$make packages
9.安裝torque-package-clients-linux-x86_64.sh和torque-package-mom-linux-x86_64.sh
[root@centos torque-4.0.0]$./torque-package-clients-linux-x86_64.sh --install
[root@centos torque-4.0.0]$./torque-package-mom-linux-x86_64.sh --install
至此,torque已安裝完成。接下來要配置torque環境。
四、Torque 配置
1.配置用戶權限
[root@centos torque-4.0.0]$./torque.setup.sh qium (qium 普通用戶名)
2.開機啓動torque服務
[root@centos ~]$vi /etc/rc.local
加入以下內容:
trqauthd
pbs_server
pbs_sched
pbs_mom
[root@centos ~]$chmod +x rc.local
重啓後便可以了開機啓動
3.添加計算節點("副"節點),修改/var/spool/torque/server_priv/nodes文件、/var/spool/torque/mom_priv/config文件和/etc/hosts文件
[root@centos ~]$vi /var/spool/torque/server_priv/nodes
添加以下內容:
centos np=8 (主節點)
node1 np=12
node2 np=12
... ...
[root@centos ~]$vi /var/spool/torque/mom_priv/config
添加以下內容:
pbsserver centos (主節點或管理節點)
logevent 255
[root@centos ~]$vi /etc/hosts
添加以下內容:
12.0.0.1 centos
12.0.0.2 node1
12.0.0.3 node2
... ...
保存
計算節點安裝torque,(提前拷貝torque-package-clients-linux-x86_64.sh和torque-package-mom-linux-x86_64.sh到node1)進入第一臺計算節點,現以node1爲例:
[roo@centos ~]$ ssh 12.0.0.2
[root@node1 ~]$ ./torque-package-clients-linux-x86_64.sh --install
[root@node1 ~]$ ./torque-package-mom-linux-x86_64.sh --install
至此,管理節點(也是計算節點)和計算節點已經配置好,重啓即可。
4.管理節點上Torque 列隊的配置(可以不配置,默認爲batch列隊)
方法一:使用qmgr
[root@centos ~]$qmgr
Qmgr:create queue qium #創建列隊
Qmgr:set queue qium queue_type=execution
Qmgr: set queue qium enabled = True
Qmgr: set queue qium started = True #這三個必須參數
Qmgr: set queue qium max_queuable=20 #可選,最大列隊數量
Qmgr: set queue qium max_running=20 #可選,列隊最大運行數量
Qmgr: set queue qium max_user_queuable=20 #可選,一個用戶最大列隊數量
Qmgr: set queue qium max_user_run=10 #可選,一個用戶最大運行數量
Qmgr: set queue qium resources_default.walltime = 240:00:00 #可選,一個作業從開始到計算完成最大時間
Qmgr: set queue qium resources_default.nodes=1 #可選,默認使用節點數
Qmgr: set server operators += qium #可選,添加用戶
Qmgr: set server managers += qium #可選,添加管理者
Qmgr:set server scheduling = true #可選
Qmgr:set server keep_completed = 300 #可選,一個作業計算完成後,保持C狀態的時間,秒爲單位
Qmgr:set server mom_job_sync = true #可選
Qmgr:exit
[root@centos ~]$qmgr -c 'p s' #查看所有列隊
方法二:
[root@centos ~]$cd /var/spool/torque/server_priv/queues
[root@centos ~]$cp batch qium
[root@centos ~]$vi qium #修改參數
將方法一中的參數拷貝到qium文件中,即可
[root@centos ~]reboot
重啓後,torque安裝與配置完成!
五、提交作業
1.編寫qsub.sh文件
[qium@centos ~]$ vi qusb.sh #提交作業腳本
在qusb.sh中寫入:
#PBS -N test
#PBS -l nodes=1:ppn=2
#PBS -q batch
#PBS -V
echo Working directory is $PBS_O_WORKDIR
cd $PBS_O_WORKDIR
echo Running on host `hostname`
echo Time is `date`
echo Directory is `pwd`
echo This jobs runs on the following processors:
echo `cat $PBS_NODEFILE`
NPROCS=`wc -l < $PBS_NODEFILE`
echo This job has allocated $NPROCS nodes
#mpirun -np 2
python test.py
2.編寫test.py
[qium@centos ~]$ vi test.py
在t.py中寫入:
#!/usr/bin/python
import time
time.sleep(5)
print('t')
3.提交作業
[qium@centos ~]$ qsub qsub.sh
注意:qsub.sh文件的編寫及參數意義可以參考:https://blog.csdn.net/qium2014/article/details/50052699
六、列隊id歸零
經常提交作業,作業id號會一直增加,有沒有辦法將id重置爲0呢?答案是肯定的。下面就如何將id重置爲0進行介紹。Torque使用的數據庫是用可擴展標記語言(xml), 所有屬性是用一對標籤來引用。我們的目的就是修改某些屬性就可以重置爲0。
在修改時,請先kill掉pbs相關進程
[root@centos ~]$ ps -e | grep pbs #查看進程
[root@centos ~]$ killall pbs_mom
[root@centos ~]$ killall pbs_sched
[root@centos ~]$ killall pbs_server
[root@centos ~]$ killall trqauthd
1. 修改serverdb文件
方法一:在安裝時,備份下serverdb,下次直接拷貝。
[roo@centos ~]$ cd /var/spool/torque/server_priv
[roo@centos ~]$ cp serverdb serverdb_orig #安裝後,馬上拷貝
當id號很大時,可將serverdb_orig 拷貝成serverdb
[roo@centos ~]$ cp serverdb_orig serverdb
方法二:在安裝進,沒有備份serverdb,直接修改serverdb文件。
[root@centos ~]$ cd /var/spool/torque/server_priv
[root@centos ~]$vi serverdb
將以下屬性修改:
<numjobs>100</numjobs> ===> <numjobs>0</numjobs>
<nextjobid>101</nextjobid> ===> <nextjobid>0</nextjobid>
<total_jobs>101</total_jobs> ===> <total_jobs>0</total_jobs>
<next_job_number》101</next_job_number> ===> <next_job_number>0</next_job_number>
如:
<server_db>
<numjobs>0</numjobs> #當前作業id
<numque>1</numque> #列隊表1:batch 2:qium
<nextjobid>0</nextjobid> #下一次作業id
<savetime>1584164219</savetime>
<attributes>
<server_state>0</server_state>
<scheduling>1</scheduling>
<total_jobs>0</total_jobs>
<state_count>Transit:0 Queued:0 Held:0 Waiting:0 Running:0 Exiting:0 Complete:0 </state_count>
<acl_hosts>centos</acl_hosts>
<managers>qium@centos</managers>
<operators>qium@centos</operators>
<default_queue>batch</default_queue>
<log_events>511</log_events>
<mail_from>adm</mail_from>
<scheduler_iteration>600</scheduler_iteration>
<node_check_rate>150</node_check_rate>
<tcp_timeout>300</tcp_timeout>
<job_stat_rate>45</job_stat_rate>
<poll_jobs>1</poll_jobs>
<mom_job_sync>1</mom_job_sync>
<pbs_version>4.0.0</pbs_version>
<keep_completed>60</keep_completed> #作業完成後,保持C狀態的時間 60秒
<next_job_number>0</next_job_number> #下一作業id
</attributes>
</server_db>
方法三:寫個腳本,定時重置。(如:1.sh、1.pl、1.py都可以,再啓用crontab去定時運行)
2.清空spool目錄內的文件
[root@centos ~]$ cd /var/spool/torque/spool
[root@centos ~]$ rm ./* #你也可以備份到其它目錄中,總之該目錄中沒有文件
3.重啓pbs服務
[root@centos ~]$trqauthd
[root@centos ~]$pbs_server
[root@centos ~]$pbs_sched
[root@centos ~]$pbs_mom
現在提交作業,你會發現作業的ID是從0開始了!!!!
七、可能報錯
如報出下面的錯誤:
PBS_Server: LOG_ERROR::svr_recov_xml, No server tag found in the database file???
PBS_Server: LOG_ERROR::recov_svr_attr, Unable to read server database
pbs_server: failed to get server attributes
可以用下面方法解決:
[root@centos ~]$ cd /var/spool/torque/server_priv
[root@centos ~]$ vi serverdb
在最後加下面兩行
</attributes>
</server_db>
[root@centos ~]$trqauthd
[root@centos ~]$pbs_server
[root@centos ~]$pbs_sched
[root@centos ~]$pbs_mom
重新啓動pbs服務,就可解決!!!!