RaspberryPiのリソース使用率と消費電力を調査

熱くなるRaspberryPi4

RaspberryPi4を自冷フィンケースで運用しているとそれなりに熱くなります。
さらにGitLabのサービスを動作させた場合、CPU、メモリに大きな負荷がかかります。
そこで消費電力、CPU・メモリ使用率、温度をモニタリングしながら、GitLabサービスが与える影響を調査します。

調査に必要な道具

RaspberryPi4Bの電源入力はUSB-TypeCなので、USB-C用のワットメータを購入しました(安物!)。
厳密な精度は無いと思いますが、大まかな値の測定と相対評価は可能でしょう。

消費電力とヒートシンク・CPU温度の比較

GitLabサービスのON/OFFで消費電力を比較します。

測定方法

RaspberryPi4起動後、動作が安定してからワットメータによる測定を開始します。
測定は約20分程度行い、平均消費電力を出します。

GitLabサービス有効/無効の消費電力比較

GitLab有効時の消費電力:5.08W

GitLab無効時の消費電力:4.01W

サービスの有効/無効で約1Wの消費電力差がありました。有効時は約20%消費電力が高いことになります。

GitLabサービス有効/無効のヒートシンク温度比較

GitLab有効時のヒートシンク温度:44.3℃(室温28.9℃、Δ15.4℃)

GitLab無効時のヒートシンク温度:42.0℃(室温29.6℃、Δ12.4℃)

温度上昇差は約3℃でした。

 

CPU温度を比較

次のコマンドを使用して、CPU温度を取得します。データの取得はGitLab起動時と停止時それぞれで行います。

$ vcgencmd measure_temp
temp=59.9'C

結構ふらつきますが、GitLab起動時で約60℃、停止時で約51℃でした。室温が29℃だとするとそれぞれΔ31℃、Δ22℃の結果となります。

GitLab停止時のCPU温度変化

簡単なプログラムを使用してGitLab起動状態からGitLab停止状態に変化させた場合の温度変化を記録します。
まずは任意のディレクトリに温度を取得するスクリプトを作成。

$ vim GetTemp.Data.sh
vcgencmd measure_temp >> TempDataList.txt
tail -n 1 TempDataList.txt

次にこのコードを定期的に実行するC言語プログラムを同じディレクトリに作成します。

$ vim RecordTempData.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int delete_file(const char*);

int main(void) 
{
    if (delete_file("TempDataList.txt")) {
        puts("ファイルを削除しました。");
    }
    else {
        puts("ファイルの削除に失敗しました。");
    }
    for (int i=0; i < 100+1; i++){
        system("bash GetTempData.sh");
    	sleep(10);

    }
    return 0;
}

int delete_file(const char* file_name)
{
    return !(remove(file_name));
}

このコードを実行して取得したデータをグラフ化した結果が以下です。停止直後から急激に温度が低下し10秒程度で5℃程低下します。その後は緩やかに温度が低下し、2分後には8℃程度低下しました。

電力、温度測定結果をさらに深堀

GitLab起動/停止それぞれの条件で消費電力、CPU温度測定を行いましたが、この結果を熱抵抗の観点から更に深堀してみましょう。

熱抵抗という考え方

熱源の放熱計算には熱抵抗という考え方を適用します。これは熱の伝わり方を電気回路のように扱う考え方で単位は[K/W]となります。今回の測定結果から熱抵抗を計算してみます。ポイントとしては下記計算式のようにCPU消費電力とその他部品の消費電力(Pconst)を分けて考えて、熱抵抗を求めます。結果的に熱抵抗は12.55[K/W]となりました。

 

システムの冷却能力の判定

先ほどの計算で熱抵抗が12.55[K/W]と導出出来ました。この熱抵抗とCPUのTDPから冷却能力の判定が可能です。RaspberryPi4Bに搭載されるCPUはBroadcom BCM2711で、下記スペックです。

  • TDP(PL1/PBP):7.5W
  • TDP down:3W

この情報からチップの能力を最大限に発揮するには7.5Wの放熱能力が必要となります。しかし、先ほど求めた熱抵抗にて7.5W消費した場合の温度上昇は約94Kとなるため、室温30℃とするとチップ温度は124℃まで上昇すると推測できます。実際にはその前に温度保護で性能低下するため、破損の心配はないですが、PaspberryPi4Bの性能をフルに発揮することはできないでしょう。

コメントを残す

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

18 + 19 =