web-dev-qa-db-ja.com

unixのtopコマンドを理解する

UNIXマシンでtop -cコマンドを実行すると、以下のような出力が得られます。

top - 03:09:34 up 5 days,  6:14,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 175 total,   1 running, 174 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.0%sy,  1.0%ni, 98.3%id,  0.2%wa,  0.0%hi,  0.0%si,  0.3%st
Mem:   8089600k total,  7953908k used,   135692k free,   271956k buffers
Swap: 10288440k total,  1155552k used,  9132888k free,  1934536k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                           
28552 ora       18   0 2131m 571m 3456 S  2.0  7.2  72:51.19 <some_path>
    1 root      15   0 10368  576  544 S  0.0  0.0   0:00.13 init [3]
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.85 [migration/0]
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.02 [ksoftirqd/0] 

この出力に基づいてシステムを分析する方法を教えてください。 MemとSwapの違いは何ですか?私はUNIXに不慣れで、このコマンドのmanページを試してみましたが、このデータを分析する方法がわかりません。

39
user2065083

これらすべての情報は top manページ にあります。これはman topを実行することで読むことができます。これが内訳です。

enter image description here

  • CPUの行には、次の内容が表示されます。

    最後の更新以降の間隔に基づくCPU状態の割合。 2つのラベルが以下に示されているところでは、より最近のカーネルバージョンのものが最初に示されています。
    us、user:無名のユーザープロセスを実行している時間
    sy、system:カーネルプロセスの実行時間
    ni、Nice:nicedユーザープロセスの実行時間
    wa、IO-wait:入出力完了待ちの時間
    hi:ハードウェア割り込みの処理に費やした時間
    si:ソフトウェア割り込みの処理に費やした時間
    st:ハイパーバイザーによってこのvmから盗まれた時間

  • Mem行とSwap行は次のようになります。

    この部分は、現在インストールされている物理メモリの量に応じて、値をキビバイト(KiB)、メガバイト(MiB)、またはギビバイト(GiB)で表すことができる2行で構成されています。

    1行目は物理メモリを表し、合計、使用済み、空き、バッファとして分類されます。

    2行目は仮想メモリを反映し、合計、使用済み、空き、キャッシュとして分類されます。

    物理メモリはあなたのRAM、すなわち提供するハードウェアの物理的な部分です ランダムアクセスメモリ 。スワップは 仮想メモリ これはハードドライブ上のファイルまたはパーティションであり、基本的に追加のRAMとして使用されます。これは独立したRAMチップではありませんが、ハードドライブに常駐しています。

  • 最後のセクションでは、現在実行中のプロセスに関する情報を提供します。以下の列で構成されています。

    1. PID - プロセスID:プロセスを識別するための一意の番号です。
    2. ユーザー:プロセスを起動したユーザーのユーザー名。
    3. PR - 優先度 :処理の優先度。優先順位の高いプロセスは、優先順位の低いプロセスよりもカーネルに優先され、CPU時間が長くなります。奇妙なことに、この値が低いほど、実際の優先順位は高くなります。 * nixの最高優先順位は-20、最低優先順位は20です。
    4. NI - Nice value:Niceはプロセスの優先順位を設定する方法です。詳しくは here を参照してください。
    5. VIRT - 仮想メモリサイズ(KiB):プロセスが使用している仮想メモリの総量。
    6. RES - 常駐メモリサイズ(KiB):タスクが使用したスワップされていない物理メモリ。
    7. SHR - 共有メモリサイズ(KiB):タスクに使用可能な共有メモリの量。通常、すべてではありません。他のプロセスと潜在的に共有される可能性があるメモリを単に反映するだけです。
    8. S - プロセスステータス:タスクのステータス。次のいずれかになります。

      • 'D' =中断のない睡眠
      • 'R' =実行中
      • 'S' =眠っている
      • 'T' =トレースまたは停止
      • 'Z' =ゾンビ
    9. %CPU - CPU使用率:プロセスによって使用されているCPUの割合。 デフォルトでは、topはこれを単一CPUのパーセンテージとして表示します。マルチコアシステムでは、100%を超えるパーセンテージを持つことができます。たとえば、3つのコアの使用率が60%の場合、topはCPU使用率が180%になります。詳しくは here を参照してください。 あなたはこの動作を押すことで切り替えることができます Shifti 使用中の利用可能なCPUの全体の割合を表示するためにtopが実行されている間
    10. %ME​​M - メモリ使用量(RES):現在使用されているタスクの使用可能な物理メモリ(RAM)の割合。
    11. TIME + - CPU時間、100分の1:タスクが開始されてからタスクが使用した合計CPU時間。
    12. COMMAND - コマンド名またはコマンドライン:プロセスを起動した完全なコマンドラインを表示するには、先頭から-cフラグで開始します:top -c
77
terdon
  • MemはRAMを表します。
  • スワップは、システムがメモリの拡張として使用するディスクパーティション(またはファイル)です。最近使用されなかったデータは、RAMを解放するためにディスクに移動(スワップ)できます。システムが再びそれを必要とする場合、それは元に戻します。詳しくは http://en.wikipedia.org/wiki/Paging をご覧ください。
1
Matteo