NVIDIAのGPUのファン回転数をリモートから変更する

headlessで運用しているGPUサーバのファン回転数をリモートから変更する方法です

ポイントは

の2つです

コマンド

ssh でログインし,以下のコマンドを実行するだけです.

ファンの回転数を手動設定モードに変更,回転数を100%にするコマンド

$ sudo  DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -a
GPUFanControlState=1 -a GPUTargetFanSpeed=100

ファンの回転数を自動制御モードに変更するコマンド

$ sudo  DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -a
GPUFanControlState=0

ファンの回転数を調べるコマンド

$ sudo  DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -q fans

解説

nvidia-settingsコマンドはXサーバと通信を行い,Xサーバ経由でGPUにアクセスします.

nvidia-settingsコマンドに,リモート側のXサーバと通信をさせるには
DISPLAY,XAUTHORITYの2つの変数を設定する必要があります

リモート側が headless 運用の場合は,ログインマネージャが起動していることがおおいでの,たとえば ligthdm が起動しているなら

  • DISPLAY=:0
  • XAUTHORITY=/var/run/lightdm/root/:0

を設定して lightdm の起動中はXサーバの所有者はrootになっているので
root権限で nvidia-settingsコマンドを実行するために sudoをつかっています