top
のマンページから
VIRT -- Virtual Memory Size (KiB)
The total amount of virtual memory used by the task. It includes
all code, data and shared libraries plus pages that have been
swapped out and pages that have been mapped but not used.
USED -- Memory in Use (KiB)
This field represents the non-swapped physical memory a task has
used (RES) plus the non-resident portion of its address space
(SWAP).
VIRTとUSEDは同じ意味であるように思われます。つまり、プロセスは物理メモリ内で占有するものとスワップ内で占有するものの両方です。では、それらの違いと関係は何ですか?
ちなみに、デフォルトでは、top
はUSEDを表示しません。どうすれば表示できますか?
[〜#〜] res [〜#〜]は、現在プロセスで使用されているRAMの量です。この値は、メモリページがスワップされるか、要求されていないデーモンなど、長時間スリープ状態になっているプロセスの場合は、0になることもあります。
[〜#〜] virt [〜#〜]は、プロセスが使用しているすべてのメモリのフルサイズです。RAMまたはディスク(共有オブジェクト、mmaped)ファイル、スワップ領域)VIRTは常にRES以上です。プロセスは常に仮想メモリを処理(つまり、割り当て/アクセス/解放)します。これらのページの一部またはすべてをRAMにマップするかどうかは、オペレーティングシステム次第です。
[〜#〜] used [〜#〜]は[〜#〜] virt [〜#〜]よりも小さいため、バックアップされているメモリが含まれていませんスワップ以外のもの、たとえばコードとライブラリ。
[〜#〜] res [〜#〜]は、現在実行中のプロセスに割り当てられている実際のメモリを意味します[〜#〜] ram [〜#〜]。
[〜#〜] virt [〜#〜]は、プロセスに仮想メモリ(ハードディスクやRAMに割り当てられている)を示します(manページで説明されています)。
[〜#〜]中古[〜#〜] = [〜#〜] res [〜#〜] +現在RAMに常駐していない実行可能ファイルのその部分。 ps
は、VIRT
フラグを使用してvsz
を示します。