当我运行top
并让它显示交换使用情况时,我得到以下输出。但是,在启动firefox之前,我已禁用与swapoff -a
的交换。那么SWAP
字段中显示的内容是什么?
当我执行cat /proc/meminfo
时,我会为名为SwapCached
的字段获取非零值。这是什么?我猜这是SWAP
中显示的所有top
值的汇总。这些与进程使用的总内存有何关系?
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP
COMMAND
1604 dumrat 20 0 287m 62m 26m R 1 3.1 0:05.03 225m firefox-bin
1415 dumrat 9 -11 94264 4668 3552 S 0 0.2 0:00.10 87m pulseaudio
答案 0 :(得分:0)
我的最佳猜测是这个。
当您说swapoff
时,它会阻止任务进一步“交换”(技术上,它是分页,而不是交换),但不会从交换设备中删除已交换的页面。通常,各种共享库在加载时都会进行交换:它们在这里停留很长时间,在负载很高时没有浪费时间交换它们。只要活动进程需要这些库,这些库就在RAM中,但在交换空间中也。
也许Firefox使用了一些已映射到交换空间的librsries - Xlib,GTK等,这个交换空间与其“SWAP”列相反。 Linux倾向于将所有共享页面计入共享它们的每个进程,RAM与否。
再次,这是我的猜测;带上一粒盐。