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をつかっています