Tim*_*Tim 14 top virtual-memory
从联机帮助页 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).
Run Code Online (Sandbox Code Playgroud)
在我看来, VIRT 和 USED 的意思是一样的,即它们都是进程在物理内存中占用的内容和交换中的内容的总和。那么它们的区别和关系是什么?
顺便说一下,默认情况下,top
不显示USED。我怎样才能让它可见?
jll*_*gre 19
RES是进程当前使用的 RAM 量。此值可能会有所不同,因为内存页面可能会换入或换出。对于已休眠很长时间的进程,例如未经请求的守护进程,它甚至可能为 0。
VIRT是进程使用的所有内存的完整大小,无论是在 RAM 中还是在磁盘上(共享对象、mmaped 文件、交换区),因此 VIRT 始终大于或等于 RES。一个进程总是在处理(即分配/访问/释放)虚拟内存。由操作系统将这些页面中的部分或全部映射到 RAM。
USED小于VIRT,因为它不包括由交换以外的其他东西支持的内存,例如代码和库。
RES表示当前分配给正在运行的进程的实际内存(物理内存),驻留在RAM中。
VIRT显示进程的虚拟内存(分配在硬盘和/或 RAM 上)(如手册页中所述)。
USED = RES + 当前未驻留在 RAM 中的可执行文件部分。
ps
显示VIRT
使用vsz
标志。