- DCGM、dcgm-exporter 和 Metricbeat 的組合可以對 Linux 上的 NVIDIA GPU 的記憶體、溫度和效能進行詳細監控。
- Elastic Observability 和 Kibana 可以輕鬆分析和視覺化 GPU 指標以及 CPU 指標,從而檢測瓶頸和基礎設施問題。
- 調整自動加速、電源設定檔和 GPU 時脈頻率是實現資料中心和遊戲穩定和最大效能的關鍵。
- 在 Linux 系統上,高階 NVIDIA GPU 比 AMD GPU 提供更好的支援和效能,尤其是在要求嚴格的遊戲和 4K 工作負載方面。

如果你在 Linux 系統上使用 NVIDIA GPU,遲早都需要了解其運作方式。 記憶體、效能和內部統計數據 無論是用於遊戲、機器學習、科學模擬或資料中心,控制這些資料都能決定你的機器是僅僅「能用」還是真正優化的平台。
同時,許多用戶帶著這樣的想法開始使用Linux:他們將擁有 比在Windows系統上使用NVIDIA GPU時效能更高但隨後他們會發現,基準測試的結果並不總是符合預期。關鍵在於了解如何監控、解讀和微調作業系統和GPU配置,並充分利用諸如…之類的特定工具。 DCGM、dcgm-exporter、GPU監控工具 以及 Elastic 等可觀測性解決方案。
NVIDIA GPU 在 Linux 上的效能:預期與現實
例如,當有人持有現代信用卡時 RTX 4070 或其他高階 GPU如果有人考慮轉用 Linux,他們通常會在論壇、Reddit、YouTube 影片以及各種指南上進行研究。多年來,Linux 的效能總是優於 Windows 的說法一直被反覆提及,但事實並非如此。 嚴肅的基準測試和對比測試情況要複雜得多。
在遊戲領域,Linux 取得了巨大的進步,這要歸功於… 蒸氣、質子和DXVK這使得大多數 Windows 遊戲都能在這個平台上運作。然而,在測試一些對配置要求較高的遊戲時,幀率並不總是能達到與 Windows 平台相同的水平,尤其是在遊戲沒有原生版本而依賴兼容層的情況下。
另一方面,除了遊戲領域,NVIDIA GPU 已成為其他領域的基礎。 高效能基礎設施神經網路訓練、複雜的實體模擬、渲染以及海量資料中心工作負載。在這些應用中,監控 Linux 記憶體使用情況並最大限度地發揮 NVIDIA GPU 效能至關重要,而優秀的監控系統正是在此發揮作用。
還應該注意的是,在 Linux 系統中,效能不僅取決於 GPU 本身,還取決於其他因素的組合。 NVIDIA 專有驅動程式、核心、所選發行版 以及顯示卡的功耗和時脈頻率設定。如果這些設定中的任何一項不正確,即使使用非常強大的硬件,基準測試結果也可能令人失望。
為什麼GPU監控在Linux中如此重要?
NVIDIA GPU不再只是「遊戲卡」;它們已經成為… 資料中心、公有雲和運算密集型環境的核心元件在許多部署中,大部分運算能力來自 GPU 而不是 CPU,因此忽略其效能指標是一種奢侈,無論是企業還是高級用戶都無法承受。
在這些情況下,僅僅知道你擁有多少記憶體或安裝了哪種型號的GPU是不夠的。即時可見性至關重要。 記憶體使用情況、GPU負載、溫度、功耗時脈速度和其他內部計數器可以提供有關瓶頸或穩定性問題的線索。
此外,Linux 是目前占主導地位的作業系統。 雲端運算叢集、高效能運算和人工智慧平台因此,整個監控基礎設施通常都圍繞著它。 NVIDIA 提供自己的指標公開堆疊,而像 Elastic Observability 這樣的解決方案則可讓您集中管理這些數據,將其視覺化,並以相當靈活的方式產生智慧警報。
如果您使用的是來自下列供應商的 NVIDIA GPU: Google Cloud、AWS 或 Genesis Cloud監控不僅可以幫助您發現錯誤,還可以幫助您驗證您在雲端付費購買的資源是否得到了有效利用,從而避免因資源利用不足或配置錯誤而產生的不必要成本。
另一個關鍵點是,與 CPU 指標不同,許多 GPU 指標並沒有很好地整合到標準的 Linux 工具中。這就是為什麼像 [components/tools/tools/etc ... 這樣的元件存在的原因。 NVIDIA 資料中心 GPU 管理器 (DCGM) 以及與現代可觀測性系統整合的特定指標導出器。
基本相依性:NVIDIA 驅動程式、DCGM 和監控工具
要在 NVIDIA 顯示卡上獲得優化的 Linux 記憶體統計信息,第一步是擁有一個配置良好的環境: 正確的驅動程式、GPU 工具和可觀測性解決方案 負責收集和視覺化資料的系統。如果系統無法持續顯示指標,那麼再漂亮的圖表也毫無意義。
在資料中心環境中,NVIDIA 提供 資料中心 GPU 管理器 (DCGM)這為收集各種指標奠定了基礎,從內存使用情況和溫度到詳細的內部性能信息,應有盡有。安裝通常依賴適用於 Ubuntu 18.04 等常用發行版及其他相容版本的軟體套件。
在按照 NVIDIA 的說明進行設定過程中,請務必注意一些細節,例如參數設定。 在 CUDA 儲存庫中對於典型的 64 位元系統,此指令的結果為: uname -a 這表明建築是 x86_64因此,新增到軟體包系統中的行必須正確使用該值。
將 CUDA 軟體倉庫新增至基於 Debian/Ubuntu 的發行版的典型範例如下:
echo "deb http://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64 /" | sudo tee /etc/apt/sources.list.d/cuda.list
此外,建議檢查文件中是否有任何資訊。 官方命令中的印刷錯誤例如,在定義變數時使用額外的 > 符號 $distribution 在匯入 GPG 金鑰的那一行,必須先進行更正才能運作:
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/7fa2af80.pub
安裝完驅動程式和 DCGM 後,我們可以使用標準工具檢查 GPU 的基本狀態。 NVIDIA-SMI它會顯示型號、總內存和已使用內存、溫度以及當前正在使用該卡的進程。
安裝 gpu-monitoring-tools 和 dcgm-exporter
為了將 Linux 記憶體和 NVIDIA GPU 統計資料與 Prometheus 或 Elastic 等外部系統集成,NVIDIA 提供了 GPU監控工具這些實用程式包括 dcgm-exporter 元件。它們以 Go 原始碼的形式分發,因此我們需要… Golang 已安裝並正確配置 在系統中。
在典型情況下,Go 會被下載並安裝到… /usr/local解壓縮 tar.gz 文件,並將 Go 二進位檔案新增至 PATH 環境變數。然後,克隆官方倉庫:
cd /tmp
git clone https://github.com/NVIDIA/gpu-monitoring-tools.git
cd gpu-monitoring-tools/
sudo env "PATH=$PATH:/usr/local/go/bin" make install
該軟體包的關鍵組件是 dcgm-出口商該組件以 Prometheus 可以理解的格式公開 DCGM 指標。啟動時,它會啟動一個 HTTP 伺服器,預設情況下,該伺服器監聽本機位址,例如: localhost:9090 並提供所有可用的指標。
要顯示的統計資訊的配置在文件中定義。 /etc/dcgm-exporter/default-counters.csv其中包含數十個預先定義的計數器。其中包括與以下方面相關的指標: GPU記憶體、溫度、功耗和各種內部效能指標如果您需要更精細的粒度,DCGM 庫 API 文件詳細列出了可以啟用的所有指標。
使用類似這樣的指令啟動 dcgm-exporter 時:
dcgm-exporter --address localhost:9090
您會看到初始化訊息,表示 DCGM 已成功啟動。通常會收到關於某些模組未載入的警告,例如 DCP 指標,在這種情況下,這些警告可能與 DCGM 的啟動有關。 可以忽略不計,不會造成太大問題。 如果它們沒有被使用。
使用 Metricbeat 與 Elastic Observability 集成
一旦透過 dcgm-exporter 公開了 NVIDIA GPU 指標,下一步合乎邏輯的做法是: 將該數據發送到可觀測性平台Elastic Observability 是一個非常強大的選擇,它利用 Metricbeat 等元件來收集指標,並將它們集中在 Elastic Cloud 部署或自管理堆疊中。
為此,首先需要安裝它。 Linux 系統上的 Metricbeat 在 dcgm-exporter 運行所在的目錄下,下載與最新版本對應的 .deb 軟體包,並使用以下命令進行安裝: dpkg -i 主檔案已設定完畢。 /etc/metricbeat/metricbeat.yml 這樣它就能使用這些參數指向 Elastic Cloud 部署。 cloud.id y cloud.auth.
的價值 cloud.id 它通常採用編碼形式,用於標識區域和 Elastic 部署,而 cloud.auth 將使用者名稱和密碼組合在一起,例如:
cloud.id: "staging:dXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlvJDM4ODZkYmUwMWNjODQ2NDM4YjRlNzg5OWEyZDAwNGM5JDBiMTc0YzYyMTVlYTQwYWQ5M2NmMGY4MjVhNzJmOGRk"
cloud.auth: "elastic:J7KYiDku2wP7DFr62zV4zL4y"
(顯然,在實際環境中,將使用使用者自己的安全憑證)。
Metricbeat 的輸入是模組化的,在這種情況下,我們需要啟用 普羅米修斯模組因為 dcgm-exporter 以該格式發布其指標。激活方式如下:
sudo metricbeat modules enable prometheus
在正式投入使用之前,建議先執行一些配置測試,以確保 Metricbeat 配置正確,並且可以連接到 Elastic Cloud 和 Prometheus 端點。可以使用以下命令完成此操作:
sudo metricbeat test config
sudo metricbeat test output
sudo metricbeat modules list
如果這些測試失敗,建議查閱相關文件。 Metricbeat故障排除因為錯誤通常與憑證錯誤、端點無法存取或模組未正確啟用有關。驗證完畢後,您可以執行以下命令:
sudo metricbeat setup
載入預設儀表板並定義必要的索引對映。
最後,Metricbeat 可以透過以下命令以控制台輸出模式或服務模式啟動:
sudo metricbeat -e
這將導致 dcgm-exporter 公開的 GPU 指標開始持續傳送到 Elastic,在那裡它們將被儲存並準備好進行分析。
在 Kibana 中可視化記憶體和 GPU 指標
一旦資料流入 Elastic Observability,事情就變得有趣起來: 瀏覽、篩選和交叉引用 GPU 和 CPU 指標 要真正了解您的基礎設施中正在發生的事情,Elastic 的基於 Web 的分析和視覺化介面 Kibana 主要用於此目的。
第一步是確保索引模式正確 metricbeat-* 已在該部分正確配置 堆疊管理 > Kibana > 索引模式從那裡選擇模式,然後按一下“刷新欄位清單”,以便 Kibana 可以偵測到與 GPU 指標相關的新欄位。
來自 dcgm-exporter 並由 Prometheus 模組收集的指標通常帶有諸如 的前綴 prometheus.metrics.DCGM_這些欄位包括記憶體使用情況、可用記憶體、GPU 使用率、溫度、能耗和其他相關指標的統計資料。
現在有了這些字段,就可以使用該視圖了。 Kibana 的 Discover 工具可用於執行臨時搜索您可以按主機、GPU 名稱或時間範圍進行篩選。您也可以在儀表板部分建立視覺化圖表,例如,顯示 GPU 記憶體使用情況在一天中的變化,或在同一張圖表中比較不同的實例。
其中最實用的視圖之一是指標瀏覽器,它允許您比較效能 CPU 和 GPU 顯示在同一螢幕上這有助於檢測諸如 GPU 滿載運轉而 CPU 使用率不足,或反之亦然的模式,從而表明潛在的工作負載平衡問題。
此外,庫存視圖可讓您查找 大型部署中 GPU 使用的關鍵點這樣可以辨識哪些節點已達到效能極限,哪些節點處於空閒狀態,以及瓶頸集中在哪些位置。由此可以定義警報,例如,當GPU記憶體使用量在特定時間段內超過某個閾值時觸發警報。
根據NVIDIA提供的關鍵監控參數
在Linux系統上優化NVIDIA GPU環境時,並非所有指標都同等重要。根據製造商的建議,有些指標比其他指標更為重要。 需要持續監測的關鍵參數 防止故障、偵測效能下降並微調能耗。
GPU溫度是最明顯的指標之一。持續高於安全範圍可能表示有問題。 散熱問題、風扇髒污、氣流不足 機箱內部結構或散熱設計不足以滿足設備的負載需求。
另一個基本指標是 GPU功耗如果顯示卡在相同工作負載下功耗異常升高,可能表示硬體出現問題或電源配置過於激進。在大規模環境中,這些數據對於控制電力成本和規劃基礎設施容量也至關重要。
目前的GPU時脈頻率也能反映出系統的健康狀況。如果在高負載下這些頻率仍然低於預期值,則可能是由於… 功率限制、過熱降頻或保守的功率設置 這些因素阻礙了實際可用性能的發揮。
NVIDIA 提供以下工具用於壓力測試或驗證: dcgmproftester10這些指令可讓您模擬高負載的 GPU 環境,並驗證各項指標的回應。一個典型的命令是:
dcgmproftester10 --no-dcgm-validation -t 1004 -d 30
程式會執行一個特定的效能測試 30 秒,不進行某些 DCGM 驗證,非常適合檢查系統在壓力下是否保持穩定。
透過將這些指標與 Elastic 的警告功能結合,可以實現這一點。 自動執行 NVIDIA 提供的建議。當溫度超過閾值、記憶體使用率危險地接近 100% 或能耗與正常水平相比明顯失控時,觸發通知。
在 Linux 系統上優化 NVIDIA GPU 設定
除了被動監控之外,Linux 還可以應用許多調整措施來… 為了獲得更穩定,並且在許多情況下獲得更優異的性能 使用NVIDIA GPU時,其中一個最相關的方面是驅動程式本身提供的自動加速和動態時脈頻率調節功能的管理。
在某些類型的 GPU 實例中,NVIDIA 驅動程式使用 自動功率提升功能 此功能會根據負載和溫度狀況調整 GPU 頻率。雖然在一般環境下很有用,但在需要最高效能和可重複結果的場景中,最好停用此功能並將時脈頻率手動設定為安全的最大值。
透過停用自動增強功能並設定最大頻率,可以達到最佳效能。 執行過程更加一致且可預測這在基準測試環境、硬體驗證、資料中心和人工智慧平台中尤其重要,因為這些環境需要盡可能減少運行之間的差異。
另一個需要監控的點是GPU的電源模式。在Linux系統上,NVIDIA工具可讓您調整電源設定文件,從更節能的模式到持續最高效能的模式。選擇過於保守的設定檔可能會導致問題。 顯著降低遊戲中的幀率或高強度計算的效能雖然這樣一來,消費量就會減少。
對於使用者電腦,尤其是那些在 Linux 系統下運行遊戲且配備現代顯示卡的電腦,最好檢查一下驅動程式是否為最新版本,以及相關選項是否可用。 持久模式、功率限制和時鐘配置文件 符合預期的性能目標。很多負面的基準測試結果,其實只是因為出廠配置優化不足所造成的。
Linux 與使用 NVIDIA GPU 的遊戲:現狀
儘管Linux仍然背負著「不適合遊戲」的惡名,但事實上,隨著… 優秀的NVIDIA GPU和Steam生態系統完全有可能在 Windows 系統下享受到與 Windows 系統非常接近的遊戲體驗,尤其是在使用現代圖形 API 的情況下。
透過 Steam Play 平台 Proton 和 DXVK(Wine 的特定分支)它將 DirectX 調用轉換為 Vulkan 調用,使大量最初為 Windows 開發的遊戲能夠在 Vulkan 上運行。雖然並非總是能達到原生遊戲的效能,但幀率損失通常很小,在許多情況下,大多數用戶都能接受。
與前幾代卡片相比, NVIDIA GeForce GTX 980 Ti 至 TITAN RTX雖然AMD的Radeon RX Vega 56或Radeon VII等型號也曾被拿來比較,但NVIDIA的高階Turing架構GPU已被證明在性能方面表現尤為出色。 Linux 系統上的 4K 分辨率 說到高要求的遊戲。
例如,在以下游戲中找到一個很好的例子: 全面戰爭:三國在測試的18張顯示卡中,許多顯示卡在保持較低畫質的情況下都能達到4K解析度下60幀的理想幀率。當畫質提升至中等時,只有像以下這些非常強大的型號才能達到相同的效果: RTX 2080 Ti 或 TITAN RTX 他們能夠持續克服Linux系統中的這項障礙。
其他標題如 反恐精英:全球攻勢 o DOTA 2 它們表現出更友善的效能:在可用時利用 Vulkan API,幾乎所有測試過的顯示卡都能流暢地將遊戲畫面提升到 4K,即使在分析範圍內配置較低的硬體上也能獲得較高的幀率。
在一些對圖形效能要求較高的遊戲中,例如 殺出重圍:人類分 o 第三次世界大戰的黎明很明顯,高階顯示卡對於以高畫質暢玩 4K 遊戲至關重要。例如,在《Xbox Live Arcade》等遊戲中,高階顯示卡更是如此。 古墓麗影的崛起 o 全面戰爭傳奇:不列顛王座大多數GPU在將細節等級設為低或中等值時都能處理4K分辨率,這進一步印證了以下觀點: NVIDIA 在 Linux 驅動程式和最佳化方面具有優勢。 在這些情況下,AMD 處於劣勢。
這些測試一再表明,AMD 在以下方面仍有改進空間: 面向遊戲的 Linux 驅動程式雖然 NVIDIA 提供了更成熟的支援和更穩定的更新,但對於那些希望在 Linux 上玩高解析度遊戲時獲得最佳效能的用戶來說,這仍然是選擇 GPU 的關鍵因素。
綜合來看,了解 Linux 記憶體統計資料和 NVIDIA GPU 指標的運作機制,再加上良好的驅動程式設定和監控工具,就能實現這一點。 充分發揮它的潛力 無論是在遊戲電腦、人工智慧伺服器,或是擁有數十個節點且滿載運轉的資料中心,此顯示卡都能勝任。
很明顯,詳細控制 Linux 系統下 NVIDIA GPU 的記憶體、效能和健康狀況 它不再是可選項,而是生產環境和高要求用戶的關鍵組件:良好的驅動程式堆疊和 DCGM、帶有 dcgm-exporter 的指標導出層、使用 Metricbeat 進行收集以及在 Kibana 中進行可視化,再加上對 GPU 功率和時脈速度的微調,真正區分出一個僅僅符合要求的系統和一個能夠充分利用關鍵的記憶體和一個系統。