コンテンツへスキップ

NVIDIA Jetson Nano 温度監視

NVIDIA Jetson Nano の動作温度

Raspberry Piを導入した際に、高負荷時の動作が遅かったので、温度を疑い、見事に高温からくるCPUクロック速度の制御が行われておりました。
参考記事:Raspberry Pi 熱対策 ファン導入

NVIDIA Jetson Nano導入時より温度の履歴を取得しておりました。

NVIDIA Jetson Nanoのセンサー情報取得

/sys/devices/virtual/thermal/thermal_zone[0-9]/type にセンサタイプ、
/sys/devices/virtual/thermal/thermal_zone[0-9]/temp に温度が記載されています。

$ cat /sys/devices/virtual/thermal/thermal_zone[0-9]/type
AO-therm
CPU-therm
GPU-therm
PLL-therm
PMIC-Die
thermal-fan-est
$ cat /sys/devices/virtual/thermal/thermal_zone[0-9]/temp
45500
35500
36000
33500
100000
35750

それぞれの内容を調べたのですが、以下の説明しか入手出来なかったです。
とりあえず、CPU温度とGPU温度の履歴を収集しました。
AO: always on,
PLL: phase locking loop,
PMIC: power management IC,
Tdiode: temperature of thermal diode in chip,
Tboard: temperature of board read from a thermal diode on board.

CPU温度とGPU温度をDBへ保存する際に利用したPHPスクリプト

//ログのファイル名
define("SENDGRID_API_LOG_NAME","jetson-temp");
//DB
define("DB_HOST","@DB_IP@:3307");
define("DB_USER","@USER@");
define("DB_PASS","@PASS@");
define("DB_DBNAME","@DB_NAME@");
define("DB_TABLENAME1","@TABLE_NAME@"); 

//温度取得ファイル名 CPU
define("FILE_NAME1","/sys/devices/virtual/thermal/thermal_zone1/temp");
//温度取得ファイル名 GPU
define("FILE_NAME2","/sys/devices/virtual/thermal/thermal_zone2/temp");

function addDBRecord($table, $datetime, $value1, $value2) {
    ##$mysqli = new mysqli($host_name, $user_name, $password, $database_name);
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_DBNAME);

    /* 接続状況をチェックします */ 
    if (mysqli_connect_errno()) {
        logger("Connect failed: ".mysqli_connect_error(),"INFO");
        exit();
    }
    echo "DB接続";

    // SQL(INSERT)を作成
    $sql = "INSERT INTO $table (
	    DATETIME, CPUTHERM, GPUTHERM
	        ) VALUES (
	        '$datetime', $value1, $value2
		)";
        
    $mysqli->query($sql);
    $mysqli->close();
}


function logger($text, $level) {
	$datetime = date('Y-m-d H:i:s');
	$date = date('Ym');
	$file_name = __DIR__ . "/log/".SENDGRID_API_LOG_NAME."-{$date}.log";
	$text = "{$datetime} [{$level}] {$text}" . PHP_EOL;
	echo $text;
	if(!(file_exists($file_name))){
		touch($file_name);
		chmod($file_name, 0777);
	}
	return error_log(print_r($text, TRUE), 3, $file_name);
}

//function logger($text, $level)

logger("Start Jetson temperature","INFO");

$datetime = date("Y/m/d H:i:s");

// ファイルを配列に格納し、さらに変数に格納
$lines1 = file(FILE_NAME1);
$temp1 = (float) $lines1[0] / 1000;
$lines2 = file(FILE_NAME2);
$temp2 = (float) $lines2[0] / 1000;

//echo $datetime;
//echo $lines[0];
#addDBRecord($table, $time, $value1) {
addDBRecord(DB_TABLENAME1,$datetime,$temp1,$temp2);

logger("End Raspi temperature : DATETIME: {$datetime}, CPU-TEMP: {$temp1}, GPU-TEMP: {$temp2}","INFO");

NVIDIA Jetson NanoのCPU温度・GPU温度の蓄積結果

平日の結果です。4回のめざましじゃんけんに合わせて、温度が高くなっています。
ただし、60℃以下ですし、ファンの導入は行っておりません。
Raspberry Piの発熱量と比べると非常に優秀です。

created by Rinker
NVIDIA
¥19,000 (2021/08/19 16:46:56時点 Amazon調べ-詳細)

コメントを残す

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

CAPTCHA