Linux プロセス管理

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、プロセスとシステム リソースを管理するための基本的な Linux ツールを紹介します。初心者として、pstopfree コマンドを使用してシステム プロセスとメモリ使用状況を監視および分析する方法を学びます。これらのツールは、Linux システムで何が起こっているかを理解するための基礎となります。

到達目標

この実験が終了すると、以下のことができるようになります。

  • ps を使用してプロセスを一覧表示およびフィルタリングする
  • top を使用してプロセスをリアルタイムで監視する
  • free を使用してシステムのメモリ使用状況を確認する

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/top("Task Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/free("Memory Reporting") subgraph Lab Skills linux/ps -.-> lab-46{{"Linux プロセス管理"}} linux/top -.-> lab-46{{"Linux プロセス管理"}} linux/free -.-> lab-46{{"Linux プロセス管理"}} end

すべてのプロセスを一覧表示する

システム上で実行されているすべてのプロセスを ps コマンドを使って一覧表示してみましょう。

  1. ターミナルを開きます。/home/labex/project ディレクトリにいる必要があります。もし確認できない場合は、常に pwd と入力して Enter キーを押すことで現在のディレクトリを確認できます。

  2. すべてのプロセスを一覧表示するには、次のコマンドを実行します。

    ps -e

    これにより、すべてのプロセスの一覧が表示され、それにはプロセス ID (PID)、端末 (TTY)、CPU 時間、コマンド名が含まれます。

  3. 出力を少し見てみましょう。システム プロセスとユーザー プロセスが表示されます。各列の意味は次の通りです。

    • PID: 一意のプロセス ID
    • TTY: プロセスに関連付けられた端末の種類
    • TIME: プロセスが使用した CPU 時間の量
    • CMD: コマンドまたはプログラム名

    見慣れないプロセス名が表示されても心配しないでください。これらの多くはバックグラウンドで実行されるシステム プロセスです。

詳細なプロセス情報を表示する

次に、プロセスに関するより詳細な情報を取得しましょう。

  1. 次のコマンドを実行します。

    ps aux

    このコマンドは、すべてのプロセスの詳細な一覧を表示します。これには、プロセスを開始したユーザー、CPU とメモリの使用状況、および完全なコマンド ラインが含まれます。

  2. 出力はかなり長くなる場合があります。less コマンドを使用して、もっと簡単に表示できます。

    ps aux | less

    これにより、ps aux の出力が less にパイプされ、スクロールして表示できるようになります。

  3. less ビューアで:

    • 矢印キーを使って上下にスクロールします
    • Space キーを押して 1 ページ分進みます
    • b キーを押して 1 ページ戻ります
    • 終了したら q キーを押して less ビューアを終了します
  4. 表示されている内容を解説しましょう。

    • USER: プロセスの所有者
    • PID: プロセス ID
    • %CPU: CPU 使用量
    • %MEM: メモリ使用量
    • VSZ: 仮想メモリ サイズ
    • RSS: リジデント セット サイズ (交換されない使用される物理メモリ)
    • TTY: 端末の種類
    • STAT: プロセスの状態
    • START: プロセスの開始時刻
    • TIME: 累積 CPU 時間
    • COMMAND: 引数付きのコマンド

今すべてを理解できなくても心配しないでください。経験を積むにつれて、これらの用語に慣れていきます。

ユーザーによるプロセスのフィルタリング

特定のユーザーに属するプロセスのみを表示するようにプロセスをフィルタリングすることができます。特定のユーザー アカウントが所有するプロセスに焦点を当てたい場合に便利です。

  1. root ユーザーが所有するプロセスを表示するには、次のコマンドを実行します。

    ps -u root

    root ユーザーは Linux システムのスーパーユーザーで、システムへの完全なアクセス権を持っています。多くのシステム プロセスが root アカウントの下で実行されます。

  2. 現在のユーザー (labex) が所有するプロセスを表示するには、次のコマンドを実行します。

    ps -u labex

    これにより、ユーザー アカウントの下で開始したすべてのプロセスが表示されます。

  3. これら 2 つのコマンドの出力を比較してみましょう。おそらく、root の下の方がユーザー アカウントの下よりも多くのプロセスが表示されるでしょう。

top を使ってプロセスをリアルタイムで監視する

top コマンドは、実行中のプロセスの動的なリアルタイム ビューを提供します。システムのライブ ダッシュボードのようなものです。

  1. 次のコマンドを実行します。

    top
  2. CPU 使用量でソートされたシステム プロセスの表示が継続的に更新されます。表示は 2 つの主要なセクションに分かれています。

    • 上部の概要エリアで、システム全体の情報が表示されます。
    • 個々のプロセスの詳細が表示されるプロセス一覧。
  3. top の状態では、さまざまなコマンドを使用できます。

    • M キーを押すと、CPU ではなくメモリ使用量でソートします。
    • P キーを押すと、CPU 使用量でソートに戻ります。
    • T キーを押すと、実行時間でソートします。
    • N キーを押すと、PID でソートします。
    • 矢印キーを使ってプロセス一覧を移動します。
    • q キーを押すと top を終了します。
  4. 概要エリアには重要なシステム情報が含まれています。

    • システム稼働時間と負荷平均
    • タスクの概要 (合計、実行中、睡眠中、停止中、ゾンビ)
    • CPU 状態 (ユーザー、システム、アイドルなど)
    • メモリ使用量 (合計、空き、使用済み、バッファ/キャッシュ)
    • スワップ使用量

top を調べるのに少し時間をかけてください。これは、システムで実際に何が起こっているかを理解するための強力なツールです。

システムのメモリ使用状況を確認する

free コマンドを使うと、システムのメモリ使用状況を簡単に確認できます。

  1. 次のコマンドを実行して、人間が読みやすい形式でメモリ使用状況を表示します。

    free -h

    -h オプションは「人間が読みやすい」を意味し、サイズを 1024 の累乗で表示します (たとえば、1K、234M、2G)。

  2. 次のような出力が表示されます。

                  total        used        free      shared  buff/cache   available
    Mem:           7.7G        4.1G        287M        624M        3.3G        2.7G
    Swap:          2.0G        506M        1.5G

    各行と各列の意味を解説しましょう。

    • Mem: この行はシステムの RAM に関する情報を表示します。
    • Swap: この行はスワップ スペース (仮想メモリ) に関する情報を表示します。

    列:

    • total: インストールされているメモリの合計
    • used: 現在使用中のメモリ
    • free: 未使用のメモリ
    • shared: 複数のプロセスで共有されるメモリ
    • buff/cache: カーネル バッファ、ページ キャッシュ、およびスラブで使用されるメモリ
    • available: 新しいアプリケーションを起動するために利用可能なメモリの推定値 (スワップを使用せず)
  3. 「free」メモリが少ない場合でも慌てないでください。Linux はシステムのパフォーマンスを向上させるために、利用可能なメモリをディスク キャッシュに使用していますが、必要に応じてアプリケーションによってこのメモリを解放できます。

まとめ

この実験では、Linux の主要なプロセス管理ツールの使い方を学びました。

  • ps でプロセスを一覧表示してフィルタリングする
  • top でプロセスをリアルタイムで監視する
  • free でシステムのメモリ使用状況を確認する

これらのコマンドは、システム管理とトラブルシューティングに欠かせないものです。システム上で何が実行されているか、リソースがどのように使用されているかを把握し、潜在的な問題を特定するのに役立ちます。

これらのツールに慣れるにつれて、追加のオプションを探り、より高度なシステム分析のために他の Linux コマンドと組み合わせることができます。たとえば:

  • psgrep を組み合わせて特定のプロセスを見つける
  • top の詳細情報を解釈して、リソースを大量に消費するアプリケーションを特定する
  • スクリプトで free を使用して、時間の経過とともにメモリ使用状況を監視する

覚えておいてください。練習が磨きになります!Linux のプロセス管理に対する理解を深めるために、これらのコマンドを自分で試してみることをためらわないでください。これらのツールを使う回数が増えるほど、使いやすくなります。