---
title: 確認節點狀態 | zh
tags: Guide, TWNIA2, TW
GA: UA-155999456-1
---
{%hackmd @docsharedstyle/default %}
{%hackmd @docsharedstyle/twccheader-zh %}
# 確認節點狀態
前面介紹如何查看任務狀態,下面我們介紹如何查看節點狀態。跟查看任務狀態類似,節點狀態我們也可以透過指令來查看,透過指令的使用方式很簡單,但理解系統所顯示出來的結果較複雜,以下分為兩個子節說明。
### 相關指令
#### sinfo
查看節點資訊最簡單的方式就是直接使用「sinfo」指令,該指令會輸出當前系統的所有分區以及節點的基本狀態,如果只是想要快速查看一下可用的節點資訊,查看sinfo 所提供的資訊就足夠了。
可直接使用「sinfo」指令,查看以分區(partition)為主的瀏覽方式,查看每個分區的節點狀況,如下:
<div style="background-color:black;color:white;padding:20px;">
[yiching709@un-ln01 ~]$ sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
SlurmDefault* up 1-00:00:00 2 drain* gn0109.twcc.ai,gn1101.twcc.ai
SlurmDefault* up 1-00:00:00 240 drain gn0101.twcc.ai,gn0102.twcc.ai,gn0103.twcc.ai,gn0104.twcc.ai,gn0105.twcc.ai,……,gn1221.twcc.ai,gn1222.twcc.ai,gn1223.twcc.ai,gn1224.twcc.ai,gn1225.twcc.ai,gn1226.twcc.ai,gn1227.twcc.ai,gn1228.twcc.ai
SlurmDefault* up 1-00:00:00 7 idle gn0312.twcc.ai,gn0512.twcc.ai,gn0712.twcc.ai,gn1004.twcc.ai,gn1017.twcc.ai,gn1229.twcc.ai,gn1230.twcc.ai
SlurmDefault* up 1-00:00:00 3 down gn0705.twcc.ai,gn1012.twcc.ai,gn1111.twcc.ai
</div>
上面的範例中,由於節點太多,故在 240 drain 的部分直接使用「……」省略部分節點名稱,實際上在使用時會顯示所有的節點名稱。除了使用「sinfo」查看以分區為主的資訊外,也可透過「sinfo -N」的方式查看每個節點所在的分區以及節點狀態。同樣也因為節點過多,文件範例以「…..」省略部分結果,但實際上透過指令打出來的結果,會顯示所有節點的資訊。
<div style="background-color:black;color:white;padding:20px;">
$ sinfo -N
NODELIST NODES PARTITION STATE
gn0101.twcc.ai 1 SlurmDefault* drain
gn0102.twcc.ai 1 SlurmDefault* drain
gn0103.twcc.ai 1 SlurmDefault* drain
gn0104.twcc.ai 1 SlurmDefault* drain
gn0105.twcc.ai 1 SlurmDefault* drain
……
gn1227.twcc.ai 1 SlurmDefault* drain
gn1228.twcc.ai 1 SlurmDefault* drain
gn1229.twcc.ai 1 SlurmDefault* idle
gn1230.twcc.ai 1 SlurmDefault* idle
</div>
#### scontrol
如果像要查看更為詳細的節點資訊,則可以使用 scontrol 指令,使用該指令會輸出更詳細的資訊,包含該節點的資源使用狀態以及負載狀態、節點的系統資訊、軟體資訊等,如果想要透過 slurm 了解具體的資訊,建議使用此指令。使用方式為「scontrol show node <node_name>」,如下使用gn0101.twcc.ai 作為查看的節點範例:
<div style="background-color:black;color:white;padding:20px;">
$ scontrol show node gn0101.twcc.ai
NodeName=gn0101.twcc.ai Arch=x86_64 CoresPerSocket=18
CPUAlloc=0 CPUErr=0 CPUTot=36 CPULoad=0.43
AvailableFeatures=(null)
ActiveFeatures=(null)
Gres=gpu:8
NodeAddr=gn0101.twcc.ai NodeHostName=gn0101.twcc.ai Version=17.11
OS=Linux 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018
RealMemory=772437 AllocMem=0 FreeMem=534061 Sockets=2 Boards=1
CoreSpecCount=2 CPUSpecList=0-1 MemSpecLimit=1024
State=IDLE+DRAIN ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A
Partitions=SlurmDefault
BootTime=2018-10-16T20:45:48 SlurmdStartTime=2018-11-08T21:14:33
CfgTRES=cpu=36,mem=772437M,billing=36,gres/gpu=8
AllocTRES=
CapWatts=n/a
CurrentWatts=0 LowestJoules=0 ConsumedJoules=0
ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s
Reason=node-switch [root@2018-11-23T12:49:03]
</div>
### 節點狀態說明
Slurm 中的節點狀態很多,而且節點狀態由狀態和特殊服好兩部分構成。節點狀態中可能會有一個特殊的字符,後面加上該節點的狀態標誌,這樣組合起來的任務狀態就更複雜,新手想要理解會有一點難度,這邊說明如何查看節點狀態。
#### 特殊符號
- a. 「*」:表示節點目前沒有回應,不會將任何任務分配到該節點上。如果節點繼續沒有回應,該節點將可被系統設置為「DOWN」的狀態,但節點狀態為COMPLETING、DRAINED、DRAINING、RAIL、FAILING除外。
- b. 「~」:表示該節點處於節能模式下。
- c. 「#」:表示該節點正在被啟動,或者被控制節點配置中。
- d. 「$」:表示該節點正在被保留預約(maintenance)的狀態。
- e. 「@」:表示節點正在被安排重新啟動中。
#### 節點狀態
- a. ALLOCATED:該節點已被分配給一個或多個任務。
- b. ALLOCATED+:該節點已被分配給一個或多個任務,且一部份的任務正在處於完成過程中,表示當中有部分作業處於COMPLETING 的狀態。
- c. COMPLETEING:與此節點相關的所有任務都處於完成的過程中,Slurm允許用戶指定任務完成後要執行的處理程序,當所有任務以及處理程序都完成且終止後,該狀態會被移除。
- d. DOWN:表示該節點不可被使用。例如節點的硬件出現故障時,Slurm 會自動將節點設為此狀態,系統管理員也可以手動將節點配置為此狀態。如果執行了某些恢復的操作,Slurm會自動使節點回歸服務中。
- e. DRAINED:節點不接受用戶分配資源請求,通常是被系統管理員主動設置。
- f. DRAINING:節點正在執行任務,但當前最後的任務執行完畢後,狀態將轉為DRAINED,即不再接受用戶資源分配的請求。
- g. FAIL:節點不接受用戶分配資源請求,但原因是此節點有問題發生,與DRAINED 狀況不同。
- h. FAILING:節點正在執行任務,但由於節點有問題,即將在特定時間點不再接受資源分配。
- i. FUTURE:節點尚未完全被配置完成,預期在未來的某個時間點可以被使用,通常是被系統完全配置完成後。
- j. IDLE:該節點可被使用,但尚未被分配任務。
- k. MAINT:節點當前處於保留狀態。
- l. REBOOT:節點正在準備重啟。
- m. MIXED:該節點的資源有被部分分配。
- n. PERFCTRS(NPC):該節點被用於監控網路效能,因此無法配置資源給其他任務。
- o. POWER_DOWM:該節點目前已被關閉電源,無法運行任何作業,該狀態是由省電模式的程序所設置。
- p. POWER_UP:節點正在開機中,該狀態是由省電模式程序所設置。
- q. RESERVED:該節點處於高級預留狀態,通常不可被分配資源。
- r. UNKNOWN:Slurm 控制器啟動中,節點狀態尚不確定。
#### 狀態分類
以上狀態很多,但我們大概可分為四大項:
- 工作中:ALLOCATED、ALLOCATED+、COMPLETING、DRAINING、FAILING、MIXED
- 空閒:IDLE
- 不可用:DOWN、DRAINED、FAIL、FUTURE、MAINT、REBOOT、PERFCTRS、POWER_DOWM、POWER_UP、RESERVED,以及含 「#」、「$」、「@」任一字符
- 未知:UNKNOWN