如何在無頭節點上調整 NVIDIA GPU 風扇速度?
如何在執行 Linux 的無頭節點上控制多個消費級 NVIDIA GPU(例如 Titan 和 1080 Ti)的風扇速度?
以下是一個簡單的方法,不需要編寫腳本、連接假顯示器或擺弄,可以通過 SSH 執行以控制多個 NVIDIA GPU 的風扇。它已經在 Arch Linux 上進行了測試。
創建 xorg.conf
sudo nvidia-xconfig --allow-empty-initial-configuration --enable-all-gpus --cool-bits=7
這將為每個 GPU 創建一個
/etc/X11/xorg.conf
條目,類似於手動方法。**注意:**一些發行版(Fedora、CentOS、Manjaro)有額外的配置文件(例如 in
/etc/X11/xorg.conf.d/
或/usr/share/X11/xorg.conf.d/
),它們覆蓋xorg.conf
並設置AllowNVIDIAGPUScreens
. 此選項與本指南不兼容。額外的配置文件應該被修改或刪除。X11 日誌文件顯示已載入哪些配置文件。替代方案:手動創建 xorg.conf
辨識您的卡的 PCI ID:
nvidia-xconfig --query-gpu-info
查找
PCI BusID
欄位。請注意,這些與核心中報告的匯流排 ID 不同。或者,執行
sudo startx
,打開/var/log/Xorg.0.log
(或 startX 在“日誌文件:”行下的輸出中列出的任何位置),然後查找NVIDIA(0): Valid display device(s) on GPU-<GPU number> at PCI:<PCI ID>
.編輯
/etc/X11/xorg.conf
xorg.conf
以下是三 GPU 機器的範例:Section "ServerLayout" Identifier "dual" Screen 0 "Screen0" Screen 1 "Screen1" RightOf "Screen0" Screen 1 "Screen2" RightOf "Screen1" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BusID "PCI:5:0:0" Option "Coolbits" "7" Option "AllowEmptyInitialConfiguration" EndSection Section "Device" Identifier "Device1" Driver "nvidia" VendorName "NVIDIA Corporation" BusID "PCI:6:0:0" Option "Coolbits" "7" Option "AllowEmptyInitialConfiguration" EndSection Section "Device" Identifier "Device2" Driver "nvidia" VendorName "NVIDIA Corporation" BusID "PCI:9:0:0" Option "Coolbits" "7" Option "AllowEmptyInitialConfiguration" EndSection Section "Screen" Identifier "Screen0" Device "Device0" EndSection Section "Screen" Identifier "Screen1" Device "Device1" EndSection Section "Screen" Identifier "Screen2" Device "Device2" EndSection
必須與我們在上一步中確定的
BusID
匯流排 ID 匹配。AllowEmptyInitialConfiguration
即使沒有連接顯示器,該選項也允許 X 啟動。該選項Coolbits
允許控制風扇。它還可以允許超頻。**注意:**一些發行版(Fedora、CentOS、Manjaro)有額外的配置文件(例如 in
/etc/X11/xorg.conf.d/
或/usr/share/X11/xorg.conf.d/
),它們覆蓋xorg.conf
並設置AllowNVIDIAGPUScreens
. 此選項與本指南不兼容。額外的配置文件應該被修改或刪除。X11 日誌文件顯示已載入哪些配置文件。編輯
/root/.xinitrc
nvidia-settings -q fans nvidia-settings -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUTargetFanSpeed=75 nvidia-settings -a [gpu:1]/GPUFanControlState=1 -a [fan:1]/GPUTargetFanSpeed=75 nvidia-settings -a [gpu:2]/GPUFanControlState=1 -a [fan:2]/GPUTargetFanSpeed=75
為了方便起見,我使用 .xinitrc 來執行 nvidia-settings,儘管可能還有其他方法。第一行將列印出系統中的每個 GPU 風扇。在這裡,我將風扇設置為 75%。
發射 X
sudo startx -- :0
您可以從 SSH 執行此命令。輸出將是:
Current version of pixman: 0.34.0 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/var/log/Xorg.0.log", Time: Sat May 27 02:22:08 2017 (==) Using config file: "/etc/X11/xorg.conf" (==) Using system config directory "/usr/share/X11/xorg.conf.d" Attribute 'GPUFanControlState' (pushistik:0[gpu:0]) assigned value 1. Attribute 'GPUTargetFanSpeed' (pushistik:0[fan:0]) assigned value 75. Attribute 'GPUFanControlState' (pushistik:0[gpu:1]) assigned value 1. Attribute 'GPUTargetFanSpeed' (pushistik:0[fan:1]) assigned value 75. Attribute 'GPUFanControlState' (pushistik:0[gpu:2]) assigned value 1. Attribute 'GPUTargetFanSpeed' (pushistik:0[fan:2]) assigned value 75.
監控溫度和時鐘速度
nvidia-smi
並可nvtop
用於觀察溫度和功耗。較低的溫度將使卡的時鐘頻率更高並增加其功耗。您可以使用它sudo nvidia-smi -pl 150
來限制功耗並保持顯卡涼爽,或用於sudo nvidia-smi -pl 300
讓它們超頻。如果給定 150W,我的 1080 Ti 以 1480 MHz 執行,如果給定 300W,則超過 1800 MHz,但這取決於工作負載。nvidia-smi -q
您可以使用或更具體地監控他們的時鐘速度,watch 'nvidia-smi -q | grep -E "Utilization| Graphics|Power Draw"'
返回到自動風扇管理。
重啟。我還沒有找到另一種使風扇自動執行的方法。