【ラズパイ】htopのあれこれ【Python】

目次

概要

Linuxのシステムコマンドツールでhtopを使ったので、

紹介します。

htopのインストール方法

ターミナルを開いて、

sudo apt-get install htop

と打ってください。これで使えるようになります。

htopを使用

次にターミナルに

htop

と入力したら、OKです。

htop では、プロセスのリスト、CPU、メモリ、スワップの使用状況がグラフィカルに表示されます。プロセスを選択し、F9キーを押すことで、そのプロセスを終了させることができます。
これらのツールを使用することで、システムのリソース使用状況を監視し、システムが過負荷になっているか、または特定のプロセスがリソースを過剰に消費しているかを把握できます。これにより、パフォーマンスの問題の原因を特定し、適切な対処を行うことができます。

htopの用語

スワップ

スワップ(Swap)は、Linuxを含む多くのオペレーティングシステムで使用される、メモリ管理の技術です。物理メモリ(RAM)がいっぱいになったときに、まだ実行中のプログラムのデータをハードディスクやSSDなどのストレージデバイスに一時的に移動させることで、システムがクラッシュするのを防ぎます。

スワップの動作原理


オペレーティングシステムは、アプリケーションが使用するデータとコードを物理メモリ上に保持します。しかし、多くのアプリケーションが同時に実行されている場合、利用可能な物理メモリの容量を超えることがあります。この問題を解決するために、システムは「スワップスペース」と呼ばれるハードディスクの領域を使用して、一部のデータを物理メモリから移動させます。このプロセスを「ページング」または「スワッピング」と呼びます。

スワップのメリットとデメリット

メリット:

システムの安定性: スワップを使用することで、物理メモリが不足した際にもシステムが動作し続けることができます。
メモリ使用の最適化: アクティブでないプロセスのデータをスワップスペースに移動させることで、より多くのアプリケーションを同時に実行できます。

デメリット:

パフォーマンスの低下: スワップスペースへのデータの読み書きは、物理メモリへのアクセスに比べて遥かに遅いです。そのため、スワップが頻繁に発生するとシステムのパフォーマンスが低下します。
ストレージの消耗: スワップ操作は、ハードディスクやSSDなどのストレージデバイスに対して多くの書き込み操作を行うため、デバイスの寿命を縮める可能性があります。

スワップの管理

Linuxでは、swapon、swapoff コマンドを使用してスワップスペースを有効または無効にすることができます。また、free コマンドや top コマンドを使用して、スワップ領域の使用状況を確認することが可能です。

システムのパフォーマンスを最適化するためには、適切な量の物理メモリを確保し、スワップの使用を最小限に抑えることが重要です。しかし、物理メモリが限られている環境では、スワップスペースはシステムの安定性を保つために不可欠な機能となります。

使用例

たとえば、Swpが44.2M/100.oMとなっているとします。

44.2M/100.0M という表示は、スワップ領域の使用状況を示しています。この場合、合計で100.0メガバイト(M)のスワップ領域がある中で、44.2メガバイトが使用されていることを意味します。スワップ領域は、物理メモリ(RAM)が満杯になった時に、システムが使用する一時的なストレージスペースです。

具体的には、以下のように解釈できます:

合計スワップ領域:100.0M – システムがスワップ用に割り当てている合計容量です。
使用中のスワップ領域:44.2M – 現在、スワップとして使用されている容量です。
この情報は、システムがどの程度スワップ領域を使用しているかを示しています。物理メモリが足りなくなり、スワップ領域にデータを移動させる必要がある場合、スワップの使用量が増加します。スワップの使用量が多いと、ハードディスクやSSDなどのストレージデバイスへの読み書きが増えるため、システムのパフォーマンスに影響を与える可能性があります。

一般的に、スワップの使用量が少ない場合は、システムの物理メモリが適切に管理されていると考えられます。しかし、スワップの使用量が多い、または全体のスワップ領域に対する使用率が高い場合は、物理メモリが不足している可能性があり、追加のメモリの導入や実行中のアプリケーションの見直しを検討する必要があるかもしれません。

Mem

Swpの上にMemとあります。それは、

システムの物理メモリ(RAM)の使用状況を示しています。

0、1、2、3

Memの上に「0,1,2,3」とあります。それは、

マルチコアまたはマルチプロセッサシステムのCPUコアごとの使用率を示しています。

Tasks

システム上で現在実行中のプロセス(タスク)の数を示します。この数値には、実行中(running)、スリープ中(sleeping)、停止中(stopped)、ゾンビ(zombie)状態のプロセスが含まれます。

  • 実行中:現在CPU時間を消費しているプロセス。
  • スリープ中:何らかのイベントやリソースが利用可能になるのを待っているプロセス。
  • 停止中:一時停止(SIGSTOP)されているプロセス。
  • ゾンビ:終了したが、親プロセスによってまだ回収(reaped)されていないプロセス。

Load average

過去1分間、5分間、15分間の平均的なシステム負荷を示す3つの数値です。これは、システムが処理を待っているタスクの平均数を表し、システムの負荷とパフォーマンスを把握するのに役立ちます。値が高いほど、システムが多くの処理を待っており、負荷が高いことを意味します。システムのCPUコア数に対してこの値を評価することが重要で、負荷平均がCPUコア数を超えている場合、システムが過負荷状態にあることを示します。

Uptime

Uptime はシステムが最後に起動してからの経過時間です。これはシステムの安定性を示す指標として使われることがあり、長期間にわたってシステムが再起動せずに動作していることを示します。uptime コマンドを実行することでこの情報を直接確認することができます。

これらの指標を通じて、システムの現在の状態、負荷、およびパフォーマンスを理解することができ、必要に応じてリソース管理やパフォーマンス最適化のための措置を講じることが可能になります。

PID

Process ID (PID): プロセスの一意の識別子。システム上でプロセスを特定するために使用されます。

USER

User: そのプロセスを実行しているユーザー名。

PRI

Priority (PRI): プロセスのスケジューリング優先度。数値が低いほど優先度が高いです。

NI

Nice value (NI): プロセスの優先度を調整するための値。優先度を下げる(他のプロセスに対して「親切」になる)ために使用されます。

VIRT

Virtual memory size (VIRT): プロセスが使用する仮想メモリの総量。これにはプロセスが使用するコード、データ、および共有ライブラリ、さらにページング領域(スワップ領域)も含まれます。

RES

Resident memory size (RES): プロセスが物理メモリ(RAM)で実際に使用している量。

SHR

Shared memory (SHR): プロセスによって使用されている共有メモリの量。他のプロセスと共有されているメモリです。

S

Status (S): プロセスの状態。一般的な状態には、実行中(R)、スリープ中(S)、中断(T)、ゾンビ(Z)などがあります。

CPU%

CPU usage (CPU%): プロセスがCPUリソースをどの程度使用しているかのパーセンテージ。

MEM%

Memory usage (MEM%): プロセスが物理メモリをどの程度使用しているかのパーセンテージ。

TIME+

CPU time (TIME+): プロセスが開始されてからの総CPU使用時間。

Command

Command (COMMAND): プロセスを起動したコマンドラインまたは実行中のプログラムの名前。

まとめ

という感じです。

何かの参考になれば幸いです。

スクールの紹介

ここまで読んでいただき、ありがとうございました。

最後に宣伝をさせてください。

夢見るAIエンジニアへ、今こそ一歩を踏み出せ!

最近、AI技術やデータサイエンスに興味を持ち始めたあなた。将来、AIエンジニアやデータサイエンティストとして活躍したいと考えているかもしれません。また、AIを使って業務課題や研究課題を解決したい、あるいは教養としてAIの知識を深めたいと思っている方もいるでしょう。

しかし、学び始めるとなると「どこから手をつけて良いのか分からない」「専門的すぎて理解できない」といった悩みが生じることも。そんなあなたのために、この3ヶ月間集中してAIプログラミングを習得するオンラインコーチングサービスがオススメです!

なぜこのサービスが選ばれるのか?その理由はこちら

  1. 初心者から上級者まで
    完全なプログラミング初心者から研究者まで、幅広い方々に優良なコンテンツが提供されます。
  2. 徹底的な進捗管理
    受講者の進捗をしっかりとチェックし、つまずきやすいポイントでのフォローが万全です。
  3. 専属メンターによる徹底サポート
    AIの学び方から、実際の適用まで、専属のメンターが手厚くサポートします。
  4. 場所を選ばず学べるオンライン完結
    東京以外の地域からも、気軽に学び始めることができます。

信頼の実績多数!
・日本最大級のプログラミングスクール実績
・受講者総数700名以上
・SaaS型学習サービス会員65,000名以上
・企業導入実績120社以上
・グッドデザイン賞受賞
・著名な賞受賞歴や経団連加盟も実現

夢を叶えるための第一歩を、一緒に踏み出しませんか?今なら、あなたもその一員として学び始めることができます!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次