一、作業調度系統的概述:
主要負責接收用戶提交的作業請求,並根據特點的調度規則以及用戶對作業的要求選擇合適的計算資源來完成用戶作業。
sge作業調度系統主要有以下四部分組成:
節點:一台或多台主機
后台程序:主要是sge的守護進程,包括master和exced
隊列:邏輯上把一台或者多台主機組成一個資源池
用戶命令:提供用戶提交、查看、修改作業的接口
二、sge調度策略
1.先來先服務:按作業到達的先后次序調度
2.優先級調度:根據作業的優先級,優先級高的先調度(如果是數字,則數值越大優先級越高)
調度策略原則:進程調度決定就緒隊列中哪個進程將獲得處理機,並實際執行將處理機分配給該進程的操作。進程調度是操作系統中最基本的調度,在批處理及分時系統中都必須配置。
三、工作原理
sge把主機分為不同的角色:
主控主機(master host)、執行主機(execution host)、管理主機(administraive host)、提交主機(submit host)
四、sge的工作流程及命令介紹
1.准備工作
- qsub命令
vim test.qusb #!/bin/bash #$ -V #push當前的環境變量 #$ -cwd #作業輸出放在當前目錄 #$ -S /bin/bash #指定使用的shell類型 #$ -P qd #項目名 #$ -q m.q #隊列名 #$ -N name #作業的顯示名 #$ -l virtual_free=100M,num_proc=2 #資源申請 sleep 120 echo "this is a test" >>test.out
使用qsub命令提交作業:qsub -cwd -l vf=1G,p=0 test.qsub
2.刪除作業
qdel job-id
2.查看作業狀態
qstat -j job-id 查看指定作業狀態及具體的報錯信息
介紹以下幾種狀態:
r 正在運行
s 作業停止
dr 作業刪除后的一種過度狀態
qw 排隊等待
hqw 排隊等待掛起
Eqw 作業出錯終止
qstat -f 查看隊列節點狀態
介紹以下幾種狀態:
a 負載超限
A 負載超限
E 隊列出錯,不能提供任務提交服務了
d 隊列主機禁用
au 主機和sge服務連接中斷,此時負載狀態為-NA-,需要重啟相關服務器的sge進程。
u 未知狀態
3.節點、隊列、用戶等配置命令
主機分為管理主機、執行主機、提交主機
qconf -sh 顯示管理主機
qconf -ah 主機名 添加管理主機
qconf -mh 主機名 修改管理主機
qconf -sel 顯示執行主機
qconf -ae 主機名 添加執行主機
qconf -me 主機名 修改執行主機
qconf -ss 顯示提交主機
qconf -as 主機名 添加提交主機
qconf -ms 主機名 修改提交主機
主機組操作:
qconf -shgrpl 查看主機組
qconf -shgrp 主機組 查看某一主機組信息
qconf -ahgrp 主機組 添加主機組
qconf -mhgrp 主機組 修改某一主機組
管理用戶和操作用戶命令
qconf -sm 顯示系統管理人員列表
qconf -am 添加管理人員
qconf -dm 刪除管理人員
qconf -so 顯示操作人員列表
qconf -ao 添加操作人員
qconf -do 刪除操作人員
用戶配置命令
qconf -sul 查看所有用戶組
qconf -su 用戶組 查看用戶組信息
qconf -au 用戶名 用戶組 向用戶組中添加一個或多個用戶
qconf -mu 用戶組 修改用戶組信息
qconf -du 用戶名 用戶組 把一個或多個用戶從用戶組中刪除
qconf -dul 用戶組 刪除用戶組
隊列配置命令
qconf -sql 查看所有隊列
qconf -sq 隊列名 查看某一隊列名信息
qconf -aq 隊列名 添加隊列 (通過hostlist與節點創建聯系,user_list與用戶組及用戶創建聯系)
qconf -mq 隊列名 修改隊列
qconf -dq 隊列名 刪除隊列
查看用戶可用隊列及節點:qselect -U 用戶名
查看隊列可用節點:qselect -q 隊列名