LoginSignup
10
3

Livebook でリアルタイムにCPU使用率・メモリ 使用量を表示する

Posted at

はじめに

機械学習系で重い処理を実行しているとき、明らかに画面が固まっていたり、マシンが激しくシューシュー音を立てだしたり、逆に全くの無音すぎたりで不安になることがある

そういう時は「ちゃんと動いているか」「CPUやメモリがパンパンになっていないか」を確認することになります

CLI なら tophtop コマンド、 GUI ならアクティブティモニタやタスクマネージャーを開くことで CPU 利用率とメモリ使用量が確認可能です

しかし、 Livebook で作業中であれば、いちいち別のウィンドウを開くよりも、もちろん Livebook の中でそのまま確認したいですよね

当然、リアルタイムに変化する様子を見たいです

実は Livebook だとそれができます

セットアップ

KinoUtil をインストールします

Mix.install([
  {:kino_util, "~> 0.1.1"},
  {:nx, "~> 0.6"}
])

Nx は手軽に負荷をかけるために使うので、 CPU使用率・メモリ使用量取得には不要です

https://github.com/elixir-nx/nx

スマートセルの追加

KinoUtil をインストールしていると System utilization (システム使用量)のスマートセルが追加できます

スクリーンショット 2023-12-28 10.56.17.png

追加すると以下のようにCPU使用率とメモリ使用量がグラフと数値で表示されます

スクリーンショット 2023-12-28 10.57.57.png

CPU使用率・メモリ使用量のリアルタイム表示

System utilization のスマートセルでは、グラフと数値がリアルタイムに変化します

 負荷をかけるために以下の処理を実行しましょう

Nx.dot(
 Nx.iota({250, 250}),
 Nx.iota({250, 250})
)

250 * 250 のテンソル同士の内積を計算するため、それなりの負荷がかかります

CPU が 17 % まで増加した後、計算中は 10 %代をうろちょろしているのが分かります

util.gif

まとめ

「実行時点の値を表示する」のではなく「リアルタイムに現在の値を表示する」ところが Livebook らしくて素敵ですね

10
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3