Jetsonの温度をcactiで描画する

先日、トランジスタ技術 2019年 09 月号を読んでいて、気づいたらJetson nanoを衝動買いしていました。Jetsonというのは、”謎のAI半導体メーカー”であるnvidia社が開発販売している、GPUを積んだ1ボードPCです。

いくつかバリエーションがあり「nano」は、エントリーモデルになっていて20W (5V, 4A)の電力でcudaコードを回す事ができます。

つい先日、Raspberry Pi 4が日本で販売開始されたのに、なんで?と思う向きもあるかと思いますが、メモリを4GB積んでいるのが魅力だったんです。

さっそく火を入れてみる

nvidiaのサイトからイメージを落としてセットアップしてみると、中身はubuntuです。普段GUIは使わないので(必要なときはvnc)、セッションマネージャを落としたり、設定をいじっていると、ヒートシンクが思ったよりも暖かくなりました。

このあたりはRaspberry Piとは違うところ。ヒートシンクはついていますが、やはりFANつけたほうがいいかなぁということで、5Vで動く小さなFANを増設しました。

こうなると温度が気になりますよね。というわけでcactiでグラフ化してみました。

Jetsonの温度を知る方法

lm-sensorsが使えるかなーと思ったのですが

これしか出てこないので、sysfsから直接読み出す方法を使うことにしました。

これならば、net-snmpのextensionを使って、簡単にsnmp経由で読み出せるようにできそうです。

値を読み出すshell scriptを書いた

受け取った引数に応じて該当する値を読み取ります。Jetson側の温度単位は、[m℃]ですから、[℃]に変換して返すようにしました。

githubにも置いてあります

ちゃんと動くことも確認しましょう。

net-snmp経由で読み出せるようにする

Jetson側のnet-snmpの設定に以下を追加します。呼び出される度にshellが起動するので効率は悪そうですが。

snmpdの設定ファイルは、/etc/snmp/snmpd.conf です。

設定が終わったら、snmpd service をrestartしておきます。

リモートから読み出してみる

Jetson側のsnmpdのACLが適切に設定されていて、リモートから接続できるようになっていれば、こんな形で値が返ってきます。

cactiの設定

リモートからJetsonの温度をsnmp経由で読み出すことまで実現できました。次は、いよいよcactiで可視化する作業に進みます。基本的なcactiの設定は終わっていて、Jetsonのgenericなデータは読みだせて可視化できているものとします。つまり、device設定は完了している前提です。

cacti:データソーステンプレート作成

取得したい温度の数だけ、データソーステンプレートを作成します。ぼくは、A0, CPU, GPUの温度を取得したかったので、3つのデータソーステンプレートを作成しました。

こんなかんじで、データソーステンプレートを作成していきます。OIDは間違えやすいので注意。

cacti:グラフテンプレート作成

データソーステンプレートを作成したら、そのデータを元にしてグラフをどう作成するか?を定義する、グラフテンプレートを作成します。他のグラフのように現在値、最小値、最大値を載せたかったら、GPRINTの項目を追加してあげればOKです。

cacti:グラフ完成

すこしGPU回してみました。少し温度が上がってますが、FANのおかげか30℃くらいで抑えられています。

日付がGMTになっちゃってますが、これは phpの設定をミスってるのかしら・・・

番外編: リモートから電源を入れる

以前、Raspberry Piの電源をリモートから入れるという記事を書きました。今は、その仕組で、Jetsonの電源のOn/Offをしています。

出先から(仕事の空き時間とか!)遊べるように環境の方は、導入すると楽しいかと思います。温度が上がりすぎていないか確認できるので、安心ですね!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)