它说
p: SWAP -- Swapped size (kb)
The non-resident portion of a task's address space.
q: RES -- Resident size (kb)
The non-swapped physical memory a task has used.
RES = CODE + DATA.
好的,“非居民部分”是什么意思?
SWAP是指硬盘作为附加内存吗?
答案1
是的,交换是指当 RAM 已满时,使用硬盘来保存内存;在 Linux 上,它通常保存在单独的交换分区中,但可以使用文件。 Mac 和 Windows 使用常规文件系统上的文件。像这样将多余的内存分页到磁盘可以使操作系统不必终止进程来释放实际 RAM,这就是为什么通常建议为 Linux 安装设置一个交换分区。然而,它比真正的 RAM 慢很多(几个数量级),这就是为什么它只被用作最后的手段(以及为什么要花这么多时间来确定将哪个页面 [4kB 内存块] 发送到交换区)。
答案2
除了配置的分页设备之外,swap 还对来自使用 mmap 映射的文件的页面进行计数。这些页面只有在被程序引用时才会真正加载到物理 RAM 中。这些页面将被调出到原始文件,而不是交换设备(如果需要调出)。
paxdiablo 在这里解释了这一点:https://stackoverflow.com/questions/1972765/mmap-problem-allocates-huge-amounts-of-memory
或者参见 mmap 手册页。