GPU
什么是Nvidia-smi
nvidia-smi是nvidia 的系統管理界面 ,其中smi是System management interface的縮寫,它可以收集各種級別的信息,查看顯存使用情況。此外, 可以啟用和禁用 GPU 配置選項 (如 ECC 內存功能)。
a.靜態查看
在終端輸入invidia-smi 即可實現GPU使用情況的靜態查看。
b.動態查看
在終端輸入nvidia-smi或 watch -n 1 nvidia-smi(-n后面的數字是更新的時間間隔。)即可實現動態查看,按Ctrl+C退出。

表格參數詳解:
- GPU:本機中的GPU編號(有多塊顯卡的時候,從0開始編號)圖上GPU的編號是:0
- Fan:風扇轉速(0%-100%),N/A表示沒有風扇
- Name:GPU類型,圖上GPU的類型是:Tesla T4
- Temp:GPU的溫度(GPU溫度過高會導致GPU的頻率下降)
- Perf:GPU的性能狀態,從P0(最大性能)到P12(最小性能),圖上是:P0
- Persistence-M:持續模式的狀態,持續模式雖然耗能大,但是在新的GPU應用啟動時花費的時間更少,圖上顯示的是:off
- Pwr:Usager/Cap:能耗表示,Usage:用了多少,Cap總共多少
- Bus-Id:GPU總線相關顯示,domain:bus:device.function
- Disp.A:Display Active ,表示GPU的顯示是否初始化
- Memory-Usage:顯存使用率
- Volatile GPU-Util:GPU使用率
- Uncorr. ECC:關於ECC的東西,是否開啟錯誤檢查和糾正技術,0/disabled,1/enabled
- Compute M:計算模式,0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED
- Processes:顯示每個進程占用的顯存使用率、進程號、占用的哪個GPU
顯存占用和GPU占用是兩個不一樣的東西,顯卡是由GPU和顯存等組成的,顯存和GPU的關系有點類似於內存和CPU的關系。跑caffe代碼的時候顯存占得少,GPU占得多;跑TensorFlow代碼的時候,顯存占得多,GPU占得少。
CPU使用情況查看
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似於Windows的任務管理器

第一行,任務隊列信息,第一行,任務隊列信息,同 uptime 命令的執行結果
系統時間:16:24:47
運行時間:up 5:49,
當前登錄用戶: 4 user
負載均衡(uptime) load average: 0.06, 0.04, 0.01
average后面的三個數分別是1分鍾、5分鍾、15分鍾的負載情況。load average數據是每隔5秒鍾檢查一次活躍的進程數,然后按特定算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了
第二行,Tasks — 任務(進程)
總進程:440total, 運行:1 running, 休眠:248 sleeping, 停止: 0 stopped, 僵屍進程: 0 zombie
第三行,cpu狀態信息
0.3%us【user space】— 用戶空間占用CPU的百分比。
0.1%sy【sysctl】— 內核空間占用CPU的百分比。
0.0%ni【】— 改變過優先級的進程占用CPU的百分比
99.6%id【idolt】— 空閑CPU百分比
0.0%wa【wait】— IO等待占用CPU的百分比
0.0%hi【Hardware IRQ】— 硬中斷占用CPU的百分比
0.0%si【Software Interrupts】— 軟中斷占用CPU的百分比
第四行,內存狀態
13190016+total, 12436525+free, 1572736 used, 5962168 buff/cache【緩存的內存量】
第五行,swap交換分區信息
998396 total, 998396 free, 0 used. 12892276+avail Mem【緩沖的交換區總量】
備注:可用內存=free + buff/cache + avail Mem
對於內存監控,在top里我們要時刻監控第五行swap交換分區的used,如果這個數值在不斷的變化,說明內核在不斷進行內存和swap的數據交換,這是真正的內存不夠用了。
第四行中使用中的內存總量(used)指的是現在系統內核控制的內存數,
第四行中空閑內存總量(free)是內核還未納入其管控范圍的數量。
納入內核管理的內存不見得都在使用中,還包括過去使用過的現在可以被重復利用的內存,內核並不把這些可被重新使用的內存交還到free中去,因此在linux上free內存會越來越少,但不用為此擔心。
第七行以下:各進程(任務)的狀態監控
- PID — 進程id
- USER — 進程所有者
- PR — 進程優先級
- NI — nice值。負值表示高優先級,正值表示低優先級
- VIRT — 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
- RES — 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
- SHR — 共享內存大小,單位kb
- S —進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵屍進程
- %CPU — 上次更新到現在的CPU時間占用百分比
- %MEM — 進程使用的物理內存百分比
- TIME+ — 進程使用的CPU時間總計,單位1/100秒
- COMMAND — 進程名稱(命令名/命令行)
其余的操作,參考鏈接。
參考網址:https://www.cnblogs.com/yibeimingyue/p/11695058.html
