sge 經常使用命令

網格計算和SGE
概念上講,網格很簡單。它是執行任務的計算資源的集合。對用戶而言,它就是一個大系統,提供單個切入點,以訪問強大而分散的資源。用戶將網格視做單個計算 資源
SGE的工做原理
Sun Grid Engine 軟件爲用戶提供了向 Sun Grid Engine 系統提交要求計算的任務的方法,以透明地分配相關的工做負荷。用戶能夠向 Sun Grid Engine 系統提交批處理做業、交互式做業和並行做業。
Sun Grid Engine 用如下方式調解可用資源和做業需求。
經過 Sun Grid Engine 系統提交做業的用戶描述出做業需求的概況。此外,系統還要檢索用戶的身份以及他或她與項目或用戶組的從屬關係。用戶提交做業的時間也將存儲起來。
SGE的組成
節點( Hosts
後臺程序( Daemons
sge_qmaster the Master Daemon
sge_schedd the Scheduler Daemon
sge_execd the Execution Daemon
sge_commd the Communication Daemon
隊列( Queues

經常使用命令
qsub 命令用來向 SGE 提交批處理做業, SGE 支持單或多節點做業。
qsh 命令用來提交帶 xterm 交互式做業,在執行主機上開啓 X-windows.
qlogin 命令與 qsh 類似也是提交交互式做業到隊列中,只是它不開啓 X-windows ,而是利用如今的終端傳送 I/O ,該命令與遠程主機創建 telnet 鏈接,使用標準的 server-client 命令
qrsh 命令與 qlogin 相似,與遠程主機經過 rsh 鏈接。
qalter 可用來改變處於 pending 狀態的做業屬性。
qresub 命令容許用戶經過拷貝處於 pengding runing 狀態的做業來建立新的做業。新建做業與原做業具備相同的屬性,並被分配了新的 job ID hold 狀態。該命令可用來先拷貝一個做業再修改其屬性。
qdel  刪除任務
qmod  修改隊列和任務屬性
qstat        查看任務和隊列狀態
qacct 此命令從羣集日誌文件中抽取任意賬戶信息。
qmon 此命令爲羣集和隊列配置提供用戶界面。
qdel 用戶、操做人員或管理人員可以使用此命令向做業或其子集發送信號。
qhold 此命令阻止已提交做業的執行。
qhost 此命令顯示 Sun Grid Engine 執行主機的狀態信息。
qconf 管理隊列
qsub經常使用選項
-a date_time 做業開始運行時間
-b y[es]|n[o] 判斷做業指定是二進制文件或 scripts y :是 n scripts
-display 使用 X-windows
-dl date_time 定義做業到期時間,在做業到期時間以前,做業的優先級會逐步提升,直到管理員指定的最高級別。
-e 指定輸出 error 文件的路徑及文件名
-hard 定義做業被調度的硬性要求
-h 做業 hold 類型。 u :表示用戶 hold,s: 表示系統 hold o :表示被操做員 hold n :取消 hold
U :取消用戶 hold S :取消系統 hold O :取消操做員 hold
-i 定義輸入文件
-V 可使用。 可使用 -v PWD 來代替 -cwd
-j y[es]|n[o]   定義做業的標準錯誤輸出是否寫入的輸出文件中
-l resource=value, 代表做業運行所須要的資源。
-m b|e|a|s|n 。定義郵件發送規則。 b :做業開始時發送。 e :做業結束時發送。 a :做業失敗時發送 s :做業掛起時發送。 n :不發送
-M user[@host] 定義郵件地址
-notify :定義發送 SIGSTOP or SIGKILL 信號的延遲時間
-now y[es]|n[o] :當即執行做業
-N 做業名 -o [[hostname]:]path :定義輸出文件路徑、文件名
-P project_name :定義項目名稱
-p priority :定義優先級
-pe parallel_environment :定義並行環境
-q wc_queue_list :定義做業運行隊列
-R y[es]|n[o] :定義是否爲做業保留資源。
-r y[es]|n[o] :定義做業失敗後是否從新運行
-soft 定義做業被調度的軟性要求
-u username, 只有 qlter 命令可使用該參數。修改做業的用戶名
-v variable :定義環境變量
-verbose 使 qrsh 命令輸出信息
-verify 驗證做業參數時使用
-V 傳遞當前命令的全部環境變量

qconf經常使用選項算法

% qconf ¨Csql ¨C 顯示隊列列表
% qconf -sq 隊列名 ¨C 顯示該隊列屬性
qname 所請求的隊列名稱。
hostname 隊列所處的主機。
processors 多處理器系統中此隊列有權訪問的處理器。
qtype 容許在此隊列中運行的做業類型。目前包括批處理做業、交互式做業、點檢查做業、並行做業或它們的任意組合或相互轉換的做業。
slots 可在隊列上同時執行的做業數量。
察看隊列屬性
owner_list 隊列的擁有者。
user_lists 此參數下所列的用戶訪問列表中標識的用戶或組有權訪問此隊列。
xuser_lists 此參數下所列的用戶訪問列表中標識的用戶或組無權訪問此隊列。
complex_list 列於此參數下的屬性組與隊列相關聯,並且這些屬性組中所含的屬性構成此隊列的可請求屬性組。
complex_values 提供給此隊列的某些屬性組屬性的賦值。
察看主控主機
因爲主控主機會隨時可能在當前的主控主機和某個影像主控主機之間切換,主控主機的位置對用戶來講應該是透明的。
用文本編輯器,打開
/opt/grid-engineer/default/common/act_qmaster 文件。
此文件中有當前主控主機的名稱。
顯示執行主機
% qconf ¨Csel
顯示當前配置爲執行主機的全部主機的列表。
% qconf -se 主機名稱
顯示指定的執行主機的詳細信息
% qhost
顯示執行主機的狀態和負荷信息
顯示管理主機
% qconf -sh
顯示有管理權限的主機列表
顯示提交主機
% qconf -ss
可請求的屬性
交一個 Sun Grid Engine 做業時,可指定該做業的需求概況。用戶能夠指定做業所需的主機或隊列的屬性或特性以保證做業成功運行。 Sun Grid Engine 將這些做業需求映射到 Sun Grid Engine 羣集的主機和隊列的配置,從而找到適合該做業的主機。
可用的屬性包括隊列特性列表、全局屬性和主機相關屬性的列表,以及管理員定義的屬性。可是,爲方便起見, Sun Grid Engine 管理員一般只將一個全部可用屬性的子集定義爲可請求。
顯示可請求屬性列表
% qconf scl
顯示已配置的屬性組列表
屬性組包含一組屬性的定義。有三種標準屬性組:
global 針對羣集全局屬性(可選)
host 針對主機特有的屬性
queue 針對隊列特性的屬性
顯示可請求屬性列表
% qconf -sc 屬性組名稱 [,...]
顯示某個特定屬性組的屬性
名稱一欄中的顯示與 qconf -sq 命令顯示的第一欄基本相同
縮寫名一欄包含可由管理員定義的第一欄中全名的縮寫
能否請求一欄代表是否可將相應的項用於 qsub
關係欄定義關係運算以用於計算隊列是否知足用戶請求
能否使用欄和缺省值欄對管理員極其有用,管理員能夠用它們聲明 可以使用資源 ,。用戶能夠像請求其它屬性同樣請求可以使用資源
用戶訪問權限
得到當前配置的 ACL 列表
% qconf -sul
顯示一個或多個訪問列表中的項
% qconf -su ACL 名稱 [,...]
注: ACL 包含用戶賬戶名和 UNIX 組名, UNIX 組名用前綴「 @ 」標識出來。這樣便可肯定您的賬戶所屬的 ACL

從命令行運行簡單做業

執行任何 Sun Grid Engine 命令以前,必須設置適當的可執行搜索路徑和其它環境條件。
% qsub /opt/grid-engineer/examples/jobs/simple.sh
qsub 命令應確認做業已成功提交:您的做業 1 ("simple.sh") 已提交
% qstat 命令檢索做業的狀態信息
qstat 命令沒有產生輸出,則系統實際上無已知做業。結果: simple.sh.o1 simple.sh.e1
提交批處理做業
Shell 腳本即批處理做業,主要指集成到一個文件中的一系列命令行指令。 chmod 命令可以使腳本文件變成可執行文件。一旦調用腳本,便可啓動相應的命令解釋器(例 如, csh tcsh sh ksh ),解釋每條指令,其結果等同於執行腳本的用戶手動輸入這些指令。您能夠在一個 shell 腳本內調用任意命令、應用程序和其它 shell 腳本。


資源需求定義
實際上要執行主機成功完成做業,大部分做業要求一些先決條件。這些先決條件包括足夠的可用內存、安裝所需軟件或某種操做系統體系結構。並且,羣集管理者也常常對羣集中的機器加上一些使用限制。例如,做業可以使用的 CPU 時間就經常受到限制。
資源需求示例
% qsub -l arch=solaris64,h_vmem=750M,permas=1 \
permas.sh
要求至少有 750 MB 內存的 solaris64 主機,且該主機要有可用的 permas 許可證。
SGE 如何分配資源
資源分配算法
1. 讀入並分析全部缺省的請求文件。
2. 處理腳本文件的內嵌選項。
3. 提交做業時讀取全部腳本的內嵌選項,而不考慮其在腳本文件中的位置。
4. 從命令行讀取和分析全部請求。
SGE 如何分配資源
評估請求優先順序
1. 腳本 / 缺省請求文件從左到右
2. 腳本 / 缺省請求文件從上到下
3. 命令行從左到右
SGE 如何分配資源
評估請求優先順序
1. 腳本 / 缺省請求文件從左到右
2. 腳本 / 缺省請求文件從上到下
3. 命令行從左到右

SGE如何分配資源
分配所請求的硬性資源。若請求無效,將拒絕提交。若提交時沒法知足一個或多個請求(例如被請求的隊列正忙),做業將假脫機,稍後從新調度。若全部硬性請求都能知足,將分配這些資源,做業能夠運行。
檢查所請求的軟性資源。即便部分或所有請求沒法知足,做業仍可運行。若多個隊列(已知足硬性資源請求)提供了部分軟性資源列表(重疊或不一樣), Sun GridEngine 軟件將選擇知足最多軟性請求的隊列。
提交做業


做業優先級
於不一樣做業的調度過程順序,缺省狀況下應用先進先出 (fifo) 規則。全部暫掛(還沒有調度)做業均插入到一個列表中,第一個提交的做業在列表的頭部,接下來是第二項提交的做業,等等。首先嚐試調度先提交的做業。若至少 有一個可用的合適隊列,則做業將獲得調度。 Sun Grid Engine 軟件此後將試圖調度第二項做業,而不論第一項做業是否已分配。暫掛做業中的此優先順序可經過由羣集管理員分配給做業的優先級值覆蓋。實際的優先級值可經過 使用 qstat 命令顯示(優先級值包含在標題爲 P 的暫掛做業顯示的最後一欄)
等份額調度
fifo 規則有時會致使問題,尤爲是若用戶試圖同時提交一系列做業的狀況下(例如,經過 shell 腳本發出一個接一個的提交)。全部後來提交的和指定到同一組隊列的做業均不得不等待很長的時間。等份額調度將已擁有運行做業的用戶的做業排列在優先級列表 的結尾,從而避免了這一問題。排序僅在同一優先級值範圍的做業中執行。若 Sun Grid Engine 調度程序配置項 user_sort 設置爲 TRUE (請參考 sched_conf 手冊頁以得到細節),激活等份額調度。
隊列選擇
Sun Grid Engine 系統不分配請求非特定隊列的做業,若是它們不能即時啓動的話。此類做業將在 sge_qmaster 中標記爲假脫機,該命令會不時嘗試從新調度它們。因而,做業將分配給下一個可用的合適隊列。與此相反,在請求中指明隊列名的做業將直接進入該隊列,不管它 們是否能啓動者處於假脫機狀態。
若做業被調度,而且有多個空閒隊列知足其資源請求,則在合適的隊列中,一般做業將被分配給負荷最輕的主機上的隊列。 羣集管理者可將此依賴於負荷的方案更改成固定的順序算法。


監視和控制SGE做業
原則上,有三種方法可監視提交的做業。
使用 Sun Grid Engine 圖形用戶界面 QMON
在命令行使用 qstat 命令
經過電子郵件
qstat 監視做業
% qstat
提供已提交做業的概述
% qstat -f
另外包含了有關當前配置隊列的信息
qstat
job-ID        prior        name        user        state    submit/start at        queue        function
231                0        hydra        craig        r        07/13/96 20:27:15        durin.q        MASTER
232         0        compile penny         r         07/13/96 20:30:40  durin.q    MASTER
230                0        blackhole don         r         07/13/96 20:26:10  dwain.q   MASTER
233                0        mac          elaine          r         07/13/96 20:30:40  dwain.q   MASTER
234                0         golf                shannon r        07/13/96 20:31:44  dwain.q   MASTER
236                5         word        elaine         qw        07/13/96 20:32:07
235                0        andrun         penny         qw         07/13/96 20:31:43
注: state 欄包含的單個字符代碼含義以下: r 表示正運行,
s 表示已暫停, q 表示已排隊, w 表示在等待
qstat -f
queuename        qtype        used/free        load_avg        arch        states
dq                        BIP                0/1                        99.99                sun4        au
durin.q                BIP                2/2                        0.36                sun4
231        0         hydra craig         r         07/13/96 20:27:15                     MASTER
232                         0         compile                 penny         r         07/13/96 20:30:40                 MASTER
dwain.q                         BIP                         3/3                                 0.36                          sun4
230                         0         blackhole         don                 r         07/13/96 20:26:10                 MASTER
233                         0         mac                         elaine         r         07/13/96 20:30:40                 MASTER
234                         0         golf                         shannon         r         07/13/96 20:31:44                 MASTER
fq                                         BIP                         0/3                                 0.36                         sun4
####################################################
- PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS -
####################################################
236                         5         word                 elaine         qw         07/13/96 20:32:07
235                         0         andrun                 penny         qw         07/13/96 20:31:43

命令行控制做業
可使用 qdel 命令取消 Sun Grid Engine 做業,不管它們是正在運行仍是處於假脫機狀態。 qmod 命令能夠暫停和取消暫停(恢復)已經在運行的做業。
使用這兩個命令都須要知道做業標識號,此標識號可由 qsub 命令獲得。若忘了標識號,可經過 qstat 檢索。
% qdel 做業 ID
% qdel -f 做業 ID 1, 做業 ID 2
% qmod -s 做業 ID
% qmod -us -f 做業 ID 1, 做業 ID 2
% qmod -s 做業 ID. 任務 ID 範圍
qmod 控制隊列
% qmod -s 隊列名
% qmod -us -f 隊列名 1 、隊列名 2
% qmod -d 隊列名
% qmod -e 隊列名 1 、隊列名 2 、隊列名 3
注意:注意– 暫停 / 取消暫停和禁用 / 啓用隊列都須要擁有者、 Sun Grid Engine 管理人員或操做人員權限
SGE 的管理
控主機 ¨C 主控主機是一切羣集活動的中心。它運行主控守護程序 sge_qmaster sge_qmaster 控制全部的 Sun Grid Engine 組件(如隊列和做業),並維護關於組件狀態和用戶訪問權限之類的表單。主控主機一般運行 SGE 調度程序 sge_schedd 。除了在安裝過程當中執行的配置 外,主控主機不須要進一步配置。
執行主機 ¨C 執行主機是有權執行 Sun Grid Engine 做業的節點。所以,該主機上有 Sun Grid Engine 隊列,並運行 Sun Grid Engine 執行守護程序 sge_execd
管理主機 ¨C 可爲主控主機之外的其它主機賦予權限,以在 Sun Grid Engine 中完成任何種類的管理活動。管理主機可用如下命令設置: qconf -ah 主機名
交主機 ¨C 提交主機僅容許提交和控制批處理做業。尤爲是登陸到提交主機的用戶可經過 qsub 提交做業,可經過 qstat 或運行 Sun Grid Engine OSF/1Motif 圖形用戶界面 QMON 控制做業狀態。提交主機可用如下命令設置: qconf -as 主機名


常見錯誤處理
sql

sge_qmaster 日誌文件:
/opt/gridengineer//default/spool/qmast/message
qstat -j < 做業 ID>
qalter -w v < 做業 ID>

問題– 做業的輸出文件顯示: Warning: no access to tty; thus no job control in this shell...
可能緣由 1 一個或多個登陸文件包含了 stty 命令。這些命令僅在存在終端時有用。
可能緣由 2 腳本錯誤。
可能的解決方案 1 Sun Grid Engine 5.3 (企業版)批處理做業中,沒有與這些做業關聯的終端。您必須從登陸文件中刪除全部 stty 命令,或者用一條在處理前檢查終端的 if 語句把它們括起來。
可能的解決方案 2 添加「 #$ -S /bin/sh」
常見錯誤處理
問題– 您能夠從命令行運行做業腳本,但經過 qsub 命令運行時失敗。
可能緣由 1 可能對做業設置了進程限制。要測試這一點,寫出執行 limit limit -h 功能的測試腳本。分別在 shell 提示下和經過 qsub 命令交互執行兩個腳本,比較結果。
可能緣由 2 系統同步未完成
可能的解決方案 1 確保將配置文件中用於在 shell 中設置限制的全部命令刪除。
可能的解決方案 2 rocks-user cluster-fork 411get –all , 做同步。
常見問題處理
問題 ¨C 執行主機報告負荷爲 99.99
能緣由 ¨C 有三種可能。
1. execd 守護程序未在主機上運行。
2. 未正確指定缺省域。
3. qmaster 主機所見的執行主機名與執行主機自身所見不一樣。
可能的解決方案 ¨C
1. 做爲 root 用戶,在執行主機上經過運行 $SGE_ROOT/default/common/rcsge 腳原本啓動 execd 守護程序。
2. 做爲 Sun Grid Engine (企業版)管理員,運行 qconf -mconf 命令並將 default_domain 變量更改成 none
3. 若您正使用 DNS 解析運算羣集的主機名,則請配置 /etc/hosts NIS 以返回徹底合格的域名 (FQDN) 做爲主要主機名。
常見錯誤處理
報告做業或隊列處於錯誤狀態 E
處理方法: $SGE_ROOT/default/spool/qmaster/messages
再就具體問題進行相關處理,通常的問題有:

計算節點未掛載數據盤,出現文件找不到的錯誤。shell



www.jiangyexiang.comwindows


QQ×××流:283605880dom

相關文章
相關標籤/搜索