🐧 Linux 総合学習プラットフォーム
Raspberry Pi セットアップ ・ 中級

温度や状態の確認

ラズパイは小型のため、高負荷が続くとCPU温度が上がり、性能を自動で落とす(サーマルスロットリング)ことがあります。状態の確認には vcgencmd が便利で、vcgencmd measure_temp でCPU温度を表示できます。電源が不足していないか、周波数が下げられていないかといった健全性もこのコマンド群で点検できます。温度が高いときはヒートシンクやファンの追加、安定した電源アダプタの使用を検討します。

「なぜか処理が遅い」。Raspberry Pi を使い込むと、いつかこの不可解な症状に出くわす。原因は、案外見落とされがちな場所にある。

Raspberry Pi は手のひらに載る小さな基板の上にCPUを載せているため、一般的なデスクトップパソコンのような大きな冷却ファンや余裕のある電源を前提にできない。

そのぶん、高い負荷が続いたり電源が非力だったりすると、温度や電圧といった「体調」が崩れ、性能が落ちたり動作が不安定になったりする。

とりわけ問題になりやすいのが発熱だ。CPUの温度が一定の上限に近づくと、Raspberry Pi は自分自身を守るために動作周波数を自動的に下げる。

💡
ポイント温度が上限に近づくとCPUは自分を守るため周波数を自動で下げる。これがサーマルスロットリング=「なぜか遅い」の正体になりやすい。

これがサーマルスロットリングと呼ばれる仕組みで、安全のための正常な動作ではある。ただ、放置するとまさに「なぜか処理が遅い」という形で表面化する。

だからこそ、温度・電圧・周波数といった健全性を確認する手段を知り、必要なら冷却や電源を見直すことが、Raspberry Pi を安定して使い続けるための基礎になる。

🌡 体調を数値で読むには、何に尋ねるのか

こうした健全性の点検に使う中心的なコマンドが vcgencmd だ。

これは Raspberry Pi の心臓部であるチップ(VideoCore)に直接問い合わせて、温度や電圧、周波数などの内部状態を取り出すための専用ツールで、Raspberry Pi OS に標準で入っている。

vcgencmd measure_temp ……現在のCPU温度を表示する(例: temp=48.3'C)。

最もよく使うのが温度の確認で、vcgencmd measure_temp と打つと temp=48.3'C のように現在のCPU温度が表示される。

Raspberry Pi のCPUはおおむね80℃前後でスロットリングが始まるため、負荷をかけた状態でこの値がそこに近づいていないかが一つの目安になる。

約80℃スロットリング開始安全な温度帯(余裕あり)低いtemp=48.3負荷をかけた状態で80℃に近づいていないかを vcgencmd measure_temp で確認
vcgencmd measure_clock arm ……CPUのクロック周波数をHzで返す(1500000000 なら1.5GHz)。負荷時に下がっていれば性能が抑えられているサイン。

動作周波数を見るには vcgencmd measure_clock arm でCPUのクロック周波数(単位はHz、たとえば 1500000000 なら1.5GHz)が得られる。負荷時にこの値が定格より下がっていれば、温度や電源の都合で性能が抑えられているサインだ。

コア電圧を確認するには vcgencmd measure_volts core を使う。

これらを組み合わせれば、「今この機器が、十分な電圧と周波数で、安全な温度の範囲で動けているか」を数値で点検できる。

🚩 過去に何が起きたか、一発で分かるのか

温度や電圧の問題が実際に発生したかどうかをまとめて知るには、vcgencmd get_throttled が役立つ。

vcgencmd get_throttled ……性能が抑えられた事象を16進フラグで返す。throttled=0x0 なら起動以降に問題なし。

これは性能が抑えられた事象を記録したフラグを16進数で返すコマンドで、結果が throttled=0x0 なら、起動以降に問題は起きていないという意味だ。

0以外の値が返った場合は、いずれかのビットが立っており、電圧不足が起きた・起きている、温度上限に達してスロットリングした、といった事象があったことを示す。

💡
ポイント返り値は、下位ビットが「今まさに起きている状態」、上位ビットが「起動以降に一度でも起きたか」。0でなければ過去に何かあった証拠。

返ってくる値は、下位のビットが「今まさに起きている状態」、上位のビットが「起動以降に一度でも起きたか」を表す作りになっている。一度でも電圧不足があれば上位のビットが立ったまま残る。

そのため、今は正常でも値が0でなければ、過去に何かあった証拠として読み解ける。

ではその「0でない値」を見たとき、まず何を疑うべきか。

つまずきとくに電圧不足(under-voltage)に注意。電源アダプタやケーブルが非力なのが原因で、CPUを冷やしても直らない。電源側を見直す。

とくに注意したいのが電圧不足(under-voltage)で、これは電源アダプタやケーブルが非力で、必要な電気を供給しきれていないときに起こる。CPUを冷やしても解決せず、電源側の見直しが必要というサインだ。

安価で細いUSBケーブルは内部抵抗が大きく、アダプタの表示が足りていてもケーブルが原因で電圧が落ちることがあるので、ケーブルの質も侮れない。

画面をつないでいる場合は、電力が足りないときに稲妻のアイコンが表示されることもある。get_throttled が0でない値を返したら、まず電源(アダプタとケーブル)、次に冷却、という順で原因を疑うのが切り分けの定石だ。

🔌 「遅い」の犯人は、本当にソフトなのか

健全性まわりでありがちな勘違いは、動作が遅い原因をすべてソフトやmicroSDのせいだと決めつけてしまうことだ。

実際には、非力な電源による電圧不足や、冷却不足によるサーマルスロットリングが「なぜか遅い」の正体であることが少なくない。

とくに、パソコンのUSBポートやスマートフォン用の弱い充電器から給電していると、起動はするのに高負荷時だけ不安定になる、という分かりにくい症状が出る。

つまずきRaspberry Pi 5 の推奨は 5V/5A(27W)対応の USB-C PD電源。ここをケチると原因不明のフリーズや再起動に悩まされる。

Raspberry Pi 5 は消費電力が大きく、推奨は 5V/5A(27W)に対応した USB-C のPD電源だ。ここをケチると、原因不明のフリーズや再起動に悩まされがちである。

同じ電源でも、USB機器をたくさんぶら下げると消費が増えて電圧不足に傾く。外付けSSDなど電気を食う機器をつないだ状態で点検するのが実態に即している。

また、温度を一度測って低かったからと安心するのも早計だ。問題は高負荷が続いたときに出るため、負荷をかけた状態で温度や get_throttled を確認することが大切だ。

ヒートシンクを付けていても、密閉したケースに入れて空気がこもっていれば冷えない、という見落としもある。

📈 平常時から測っておくと、何が見えるのか

vcgencmd は、トラブルが起きてから調べるだけでなく、平常時の状態を把握しておく道具としても有用だ。

コツ常時稼働させるなら、定期的に温度と get_throttled を記録しておくと、夏場の発熱や電源の劣化に早く気づける。

常時稼働させる用途では、定期的に温度と get_throttled の値を記録しておくとよい。夏場に温度が上がってスロットリングし始めた、電源が劣化して電圧不足が出始めた、といった変化に早く気づける。

対策はシンプルだ。温度が高いならヒートシンクやファン付きのアクティブクーラーを追加し、ケース内の通気を確保すること。電圧不足が出るなら推奨仕様を満たした電源アダプタとしっかりしたケーブルに替えることだ。

Raspberry Pi 5 のように発熱が増えた世代では、最初から冷却と電源に余裕を持たせておくのが、長く安定して動かすコツになる。

「動作が変だ」と感じたら、まず vcgencmd measure_temp と vcgencmd get_throttled で体調を数値で確かめる。この習慣が、原因の遠回りを減らし、Raspberry Pi を健康に保ついちばんの近道だ。

関連コマンド

vcgencmd

▶ 学習アプリでこの続きを学ぶ・演習する