USED​​とVIRTの違いは何ですか?

USED​​とVIRTの違いは何ですか?

存在するマンページtop

USED​​とVIRTの違いは何ですか? USED​​は「RES」+「SWAP」です。 「VIRT - USED」はマップされているが未使用のページと同じですか?

「VIRT」または「USED」にはカーネル空間で使用されるサイズが含まれていますか?

「RES」には「CODE」と「DATA」が含まれていますか?

「PGMS」とは何ですか?

ありがとうございます。

これらのプロセスごとに、各メモリページは下の表の象限に制限されています。物理メモリと仮想
メモリの両方にこれら4種類のメモリのいずれかを含めることができますが、スワップファイルには#1から#3までしか含まれません。変更すると、象限#4のメモリは独自のプライベートスワップファイルとして機能します。

                             Private | Shared
                         1           |          2
    Anonymous  . stack               |
               . malloc()            |
               . brk()/sbrk()        | . POSIX shm*
               . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)
              -----------------------+----------------------
               . mmap(PRIVATE, fd)   | . mmap(SHARED, fd)
  File-backed  . pgms/shared libs    |
                         3           |          4

以下は、拡張可能な列で表されるプロセスレベルのメモリ値を記述するのに役立つことができ、トピック「3a」で議論される。
フィールドの説明です。

  %MEM - simply RES divided by total physical memory
  CODE - the `pgms' portion of quadrant 3
  DATA - the entire quadrant 1 portion of VIRT plus all
         explicit mmap file-backed pages of quadrant 3
  RES  - anything occupying physical memory which, beginning with
         Linux-4.5, is the sum of the following three fields:
         RSan - quadrant 1 pages, which include any
                former quadrant 3 pages if modified
         RSfd - quadrant 3 and quadrant 4 pages
         RSsh - quadrant 2 pages
  RSlk - subset of RES which cannot be swapped out (any quadrant)
  SHR  - subset of RES (excludes 1, includes all 2 & 4, some 3)
  SWAP - potentially any quadrant except 4
  USED - simply the sum of RES and SWAP
  VIRT - everything in-use and/or reserved (all quadrants)

....

  1. USED​​ - 使用中のメモリ(KiB)このフィールドは、ジョブで使用されているスワップされていない物理メモリ(RES)とそのアドレス空間(SWAP)のスワップアウト部分を示します。

    詳細については、「概要、Linux メモリの種類」を参照してください。

  2. VIRT - 仮想メモリサイズ(KiB)操作で使用される仮想メモリの総量。これには、すべてのコード、データ、共有ライブラリ、および置き換えられたページも含まれます。マップされたが未使用のページ

    詳細については、「概要、Linux メモリの種類」を参照してください。

ベストアンサー1

USED​​とVIRTの違いは何ですか? USED​​は「RES」+「SWAP」です。 「VIRT - USED」はマップされているが未使用のページと同じですか?

はい。一般的に言えば、これはプログラムによって割り当てられたスペースには決して触れません(多くのものが大きな塊として割り当てられ、スペース割り当ては計算コストが高くなるため、しばしば過度に割り当てられます)。

「VIRT」または「USED」にはカーネル空間で使用されるサイズが含まれていますか?

これらのどれも、カーネル空間内のプロセスに代わって割り当てられた空間を占有しません。ほとんどの場合、ほとんどのプログラムはカーネルメモリに多くのスペースを使用しないため、これは重要ではありません。

「RES」には「CODE」と「DATA」が含まれていますか?

はい、しかし必ずしもすべてではありません。 CODEとDATAはどちらもSWAPに部分的に常駐できます(実際には完全にSWAPに常駐できますが、プロセスがその時点で実際にコードを実行していない場合にのみ可能です)。

おすすめ記事