工作筆記: 管理並定位故障的Nvidia顯卡
- 定位有故障的顯卡
故障的現像是:運行命令$ nvidia-smi
之後要么不顯示顯卡的情況,要么顯示很緩慢。並且結果中有ERR! 提示。
1. 查看顯卡情況:$ nvidia-smi
,可以看到有一張顯卡出現了故障。並且只要有這張顯卡插在服務器上,這個命令的輸出都會非常緩慢,可以看到,由於我沒有壞顯卡,所以用圖中顯卡BUS-ID是000:1B:00為例子;在機房我們如何找到這張顯卡呢?
$ nvidia-smi -q
查看BUS-ID和顯卡的序列號之間的對應關係可以,看看例子的顯卡000:B7:00的序列號(Serial Number)尾號再找回對應卡的Serial Number: N/A ...。那這張顯卡插在哪個PCIE卡槽?
3. 通過
$ sudo dmidecode -t slot
查看BUS-ID(BUS Address)和卡槽的對應關係:還可以通過總結命令
$ sudo dmidecode -t slot | egrep -i "slot|add"
查看 (輸出更簡潔),輸出類似於:------------------------------------------------------------------
- 查看GPU的信息与使用情况
“1b:00.0”,這一個參數是總線編號,第二個是插槽編號,第三個是功能編號,它們都是十六進制的數字。
2. 查看顯存以及GPU的使用情況
Nvidia自帶一個命令行工具可以查看顯存的使用情況:
$ nvidia-smi
參數解釋:
Fan:顯示風扇轉速,數值在0到100%之間,是計算機的期望轉速,如果計算機不是通過風扇冷卻或者風扇壞了,顯示出來就是N/A;
Temp:顯卡內部的溫度,單位是攝氏度;
Perf:表徵性能狀態,從P0到P12,P0表示最大性能,P12表示狀態最小性能;
Pwr:能耗表示;
Bus-Id:涉及GPU總線的相關信息;
Disp.A:是Display Active的意思,表示GPU的顯示是否初始化;
Memory Usage:顯存的使用率;
Volatile GPU-Util:浮動的GPU利用率;
Compute M:計算模式;
3. 週期性的輸出顯卡的使用情況
可以參考如下命令:
$ watch -n 5 nvidia-smi
命令行參數-n後邊跟的是執行命令的周期,以s為單位。
4. 要以1秒的更新间隔监控GPU的总体使用情况
$ nvidia-smi dmon
5. 加上-r参数可以重启某个GPU卡(0是GPU卡的序号)
$ nvidia-smi -r -i 0
------------------------------------------------------------------
- 安裝顯卡所需驅動
1. 首先先安裝一個ubuntu-drivers-common去桃查你顯卡所需要的version
sudo apt install ubuntu-drivers-common
2. 之後使用工具查出要裝的顯卡驅動
ubuntu-drivers devices
3. 之後使用apt工具裝的顯卡驅動
sudo apt install nvidia-driver-495
-------------------------------------------------------------------------------------------------------------
- linux - nvidia-smi進程掛起,也無法使用SIGKILL殺死
在server發出nvidia-smi命令時,它會無限期地掛起。
當我再次登錄並嘗試殺死nvidia-smi進程(例如kill -9 <PID>)時,它並沒有被殺死。
如果我給出另一個nvidia-smi命令,我會發現兩個進程都在運行-當然是從另一個shell登錄時,因為它像以前一樣卡住了。
最後我通過在每次啟動時執行來解決此問題
sudo nvidia-smi -pm 1
上面的命令啟用持久性模式。這個問題已經影響nvidia驅動程序超過兩年了,但是他們似乎對修復它不感興趣。似乎與電源管理問題有關,在引導至操作系統後,如果nvidia-persistenced服務啟用了no-persistence-mode選項,則GPU將節省電源,並且nvidia-smi命令將掛起等待,等待其重新控制設備
關於linux - nvidia-smi進程掛起,也無法使用SIGKILL殺死,在Stack Overflow上找到一個類似的問題: https://stackoverflow.com/questions/41489070/
另外可啟動
加上-e參數可以切換ECC支持:0/禁用,1/啟用
sudo nvidia-smi -e 1
ECC 是一種指令糾錯技術,能夠檢測並糾正常見的各種內存數據損壞情況,即Error Checking and Correcting。
sudo nvidia-smi -pl 150 -i 5 # 把功率限制从默认的250W调整到150W, -i 指定一張卡的功率
Comments
Post a Comment