Torque 4.0 下載、安裝、配置、提交作業、列隊id歸零

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服務,就可解決!!!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章